summer-engine 3.8.0 → 4.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 (485) hide show
  1. package/.claude-plugin/marketplace.json +2 -13
  2. package/.claude-plugin/plugin.json +23 -22
  3. package/.codex-plugin/plugin.json +4 -12
  4. package/.cursor-plugin/plugin.json +4 -12
  5. package/.factory-plugin/plugin.json +4 -12
  6. package/AGENTS.md +19 -12
  7. package/CHANGELOG.md +96 -0
  8. package/GEMINI.md +3 -3
  9. package/README.md +103 -33
  10. package/assets/icon.png +0 -0
  11. package/commands/start.md +71 -0
  12. package/commands/summer.md +3 -2
  13. package/dist/cli/banner.js +3 -0
  14. package/dist/cli/commands/login.d.ts +27 -0
  15. package/dist/cli/commands/login.js +58 -12
  16. package/dist/cli/commands/ops.d.ts +47 -0
  17. package/dist/cli/commands/ops.js +301 -0
  18. package/dist/cli/commands/setup.d.ts +2 -0
  19. package/dist/cli/commands/setup.js +37 -12
  20. package/dist/cli/commands/skills.js +11 -7
  21. package/dist/cli/index.js +7 -0
  22. package/dist/core/agent-host.d.ts +65 -0
  23. package/dist/core/agent-host.js +193 -0
  24. package/dist/core/capabilities/agent-playbook.d.ts +3 -0
  25. package/dist/core/capabilities/agent-playbook.js +54 -2
  26. package/dist/core/capabilities/apps.d.ts +25 -2
  27. package/dist/core/capabilities/apps.js +25 -12
  28. package/dist/core/capabilities/doctor.d.ts +3 -0
  29. package/dist/core/capabilities/doctor.js +20 -15
  30. package/dist/core/capabilities/fabricate-mesh.d.ts +2 -2
  31. package/dist/core/capabilities/game-task-plan.d.ts +12 -6
  32. package/dist/core/capabilities/game-task-plan.js +80 -5
  33. package/dist/core/capabilities/motion-generation.js +2 -2
  34. package/dist/core/capabilities/navigation/open.d.ts +6 -2
  35. package/dist/core/capabilities/navigation/open.js +3 -0
  36. package/dist/core/capabilities/publish-build.js +2 -0
  37. package/dist/core/capabilities/runtime-control.d.ts +4 -4
  38. package/dist/core/capabilities/scene-script-target.d.ts +17 -0
  39. package/dist/core/capabilities/scene-script-target.js +70 -0
  40. package/dist/core/capabilities/sfx-choices.d.ts +4 -0
  41. package/dist/core/capabilities/sfx-choices.js +13 -6
  42. package/dist/core/capabilities/tool-dispatch.d.ts +12 -3
  43. package/dist/core/capabilities/tool-dispatch.js +81 -46
  44. package/dist/core/embeddings.d.ts +2 -0
  45. package/dist/core/embeddings.js +1 -1
  46. package/dist/core/error-codes.d.ts +62 -0
  47. package/dist/core/error-codes.js +97 -0
  48. package/dist/core/format.d.ts +2 -0
  49. package/dist/core/format.js +2 -1
  50. package/dist/core/hosted-mcp.d.ts +22 -0
  51. package/dist/core/hosted-mcp.js +56 -1
  52. package/dist/core/library-read.js +5 -0
  53. package/dist/core/library-search.js +2 -1
  54. package/dist/core/oauth.js +4 -0
  55. package/dist/core/ops/catalog.d.ts +41 -0
  56. package/dist/core/ops/catalog.js +145 -0
  57. package/dist/core/ops/cloud.d.ts +56 -0
  58. package/dist/core/ops/cloud.js +175 -0
  59. package/dist/core/ops/contract.d.ts +119 -0
  60. package/dist/core/ops/contract.js +142 -0
  61. package/dist/core/ops/engine-answer.d.ts +25 -0
  62. package/dist/core/ops/engine-answer.js +117 -0
  63. package/dist/core/ops/engine.d.ts +55 -0
  64. package/dist/core/ops/engine.js +649 -0
  65. package/dist/core/ops/save-files.d.ts +78 -0
  66. package/dist/core/ops/save-files.js +419 -0
  67. package/dist/core/ops/search.d.ts +9 -0
  68. package/dist/core/ops/search.js +55 -0
  69. package/dist/core/skills-registry.d.ts +16 -1
  70. package/dist/core/skills-registry.js +35 -2
  71. package/dist/core/telemetry.d.ts +32 -0
  72. package/dist/core/telemetry.js +38 -10
  73. package/dist/core/tool-profiles.d.ts +25 -0
  74. package/dist/core/tool-profiles.js +41 -0
  75. package/dist/installer/agent-config.d.ts +17 -4
  76. package/dist/installer/agent-config.js +22 -6
  77. package/dist/installer/agent-table.d.ts +3 -0
  78. package/dist/installer/agent-table.js +10 -7
  79. package/dist/installer/setup.d.ts +2 -0
  80. package/dist/installer/setup.js +9 -4
  81. package/dist/installer/version-check.d.ts +29 -9
  82. package/dist/installer/version-check.js +81 -28
  83. package/dist/mcp/command.js +7 -0
  84. package/dist/mcp/hosted-mount.d.ts +27 -2
  85. package/dist/mcp/hosted-mount.js +53 -23
  86. package/dist/mcp/legacy-toolset.d.ts +27 -0
  87. package/dist/mcp/legacy-toolset.js +43 -0
  88. package/dist/mcp/ops-surface.d.ts +59 -0
  89. package/dist/mcp/ops-surface.js +443 -0
  90. package/dist/mcp/server.d.ts +35 -11
  91. package/dist/mcp/server.js +234 -89
  92. package/dist/mcp/tool-results.d.ts +26 -0
  93. package/dist/mcp/tool-results.js +81 -0
  94. package/dist/mcp/tool-surface.d.ts +65 -0
  95. package/dist/mcp/tool-surface.js +317 -0
  96. package/dist/mcp/tools/app-tools.js +9 -2
  97. package/dist/mcp/tools/asset-tools.js +55 -53
  98. package/dist/mcp/tools/audit-tools.js +21 -21
  99. package/dist/mcp/tools/debug-tools.js +6 -6
  100. package/dist/mcp/tools/fabricate-tools.js +6 -6
  101. package/dist/mcp/tools/generate-tools.js +76 -70
  102. package/dist/mcp/tools/project-tools.d.ts +9 -4
  103. package/dist/mcp/tools/project-tools.js +16 -10
  104. package/dist/mcp/tools/scene-tools.js +12 -23
  105. package/dist/mcp/tools/script-tools.js +9 -5
  106. package/dist/mcp/tools/with-engine.d.ts +6 -0
  107. package/dist/mcp/tools/with-engine.js +19 -0
  108. package/gemini-extension.json +4 -12
  109. package/hooks/pre-commit-doctor.sh +5 -4
  110. package/hooks/session-start.sh +24 -28
  111. package/integrations/claude-desktop/README.md +1 -1
  112. package/integrations/copilot-jetbrains/README.md +1 -1
  113. package/integrations/junie/README.md +1 -1
  114. package/integrations/lm-studio/README.md +1 -1
  115. package/integrations/trae/README.md +1 -1
  116. package/integrations/visual-studio/README.md +1 -1
  117. package/library/references/mcp-tools-reference/mcp-tools-reference.md +79 -51
  118. package/library/references/mcp-tools-reference/resource.yaml +1 -1
  119. package/library/references/product-map/resource.yaml +2 -2
  120. package/library/skills/3d-lighting/SKILL.md +53 -28
  121. package/library/skills/3d-lighting/resource.yaml +1 -1
  122. package/library/skills/README.md +119 -117
  123. package/library/skills/adaptive-music/SKILL.md +19 -23
  124. package/library/skills/adaptive-music/resource.yaml +1 -1
  125. package/library/skills/agent-playtesting/SKILL.md +1 -1
  126. package/library/skills/agent-playtesting/resource.yaml +1 -1
  127. package/library/skills/ai-characters-in-games/SKILL.md +1 -1
  128. package/library/skills/ai-characters-in-games/resource.yaml +1 -1
  129. package/library/skills/ambient-bed/SKILL.md +22 -13
  130. package/library/skills/ambient-bed/resource.yaml +1 -1
  131. package/library/skills/animated-loop/SKILL.md +41 -32
  132. package/library/skills/animated-loop/resource.yaml +1 -1
  133. package/library/skills/animation-tree/SKILL.md +1 -1
  134. package/library/skills/animation-tree/resource.yaml +1 -1
  135. package/library/skills/art-direction/SKILL.md +3 -3
  136. package/library/skills/art-direction/resource.yaml +1 -1
  137. package/library/skills/asset-strategy/SKILL.md +21 -4
  138. package/library/skills/asset-strategy/resource.yaml +2 -1
  139. package/library/skills/audio-direction/SKILL.md +10 -10
  140. package/library/skills/audio-direction/resource.yaml +1 -1
  141. package/library/skills/auto-fire-targeting/SKILL.md +1 -1
  142. package/library/skills/auto-fire-targeting/resource.yaml +1 -1
  143. package/library/skills/bounded-engine-runs/SKILL.md +1 -1
  144. package/library/skills/bounded-engine-runs/resource.yaml +1 -1
  145. package/library/skills/brainstorm-game/SKILL.md +1 -1
  146. package/library/skills/brainstorm-game/resource.yaml +1 -1
  147. package/library/skills/brainstorming/SKILL.md +1 -1
  148. package/library/skills/brainstorming/resource.yaml +1 -1
  149. package/library/skills/browse-templates/SKILL.md +1 -1
  150. package/library/skills/browse-templates/resource.yaml +1 -1
  151. package/library/skills/camera-rigs/SKILL.md +2 -2
  152. package/library/skills/camera-rigs/resource.yaml +1 -1
  153. package/library/skills/celeste-momentum-platforming/resource.yaml +1 -0
  154. package/library/skills/character-animation-wiring/SKILL.md +4 -4
  155. package/library/skills/character-animation-wiring/resource.yaml +1 -1
  156. package/library/skills/character-model/SKILL.md +55 -47
  157. package/library/skills/character-model/resource.yaml +1 -1
  158. package/library/skills/character-movement/SKILL.md +3 -3
  159. package/library/skills/character-movement/resource.yaml +1 -1
  160. package/library/skills/character-portrait/SKILL.md +24 -19
  161. package/library/skills/character-portrait/resource.yaml +1 -1
  162. package/library/skills/cinematic-cutscene/SKILL.md +58 -46
  163. package/library/skills/cinematic-cutscene/resource.yaml +1 -1
  164. package/library/skills/combat-basics/SKILL.md +1 -1
  165. package/library/skills/combat-basics/resource.yaml +1 -1
  166. package/library/skills/compatibility-renderer-traps/SKILL.md +1 -1
  167. package/library/skills/compatibility-renderer-traps/resource.yaml +1 -1
  168. package/library/skills/concept-art/SKILL.md +16 -12
  169. package/library/skills/concept-art/resource.yaml +1 -1
  170. package/library/skills/concept-to-level/SKILL.md +239 -0
  171. package/library/skills/concept-to-level/references/technical-rules.md +150 -0
  172. package/library/skills/concept-to-level/resource.yaml +44 -0
  173. package/library/skills/create-asset-sheet/SKILL.md +19 -13
  174. package/library/skills/create-asset-sheet/resource.yaml +1 -1
  175. package/library/skills/debug/SKILL.md +2 -2
  176. package/library/skills/debug/resource.yaml +1 -1
  177. package/library/skills/debugging-game-feel/SKILL.md +1 -1
  178. package/library/skills/debugging-game-feel/resource.yaml +1 -1
  179. package/library/skills/design-level/SKILL.md +23 -35
  180. package/library/skills/design-level/resource.yaml +1 -1
  181. package/library/skills/design-mechanic/SKILL.md +1 -1
  182. package/library/skills/design-mechanic/resource.yaml +1 -1
  183. package/library/skills/design-npc/SKILL.md +22 -24
  184. package/library/skills/design-npc/resource.yaml +1 -1
  185. package/library/skills/diagnosing-perf-regressions/SKILL.md +1 -1
  186. package/library/skills/diagnosing-perf-regressions/resource.yaml +1 -1
  187. package/library/skills/driving-the-editor-ui/SKILL.md +1 -1
  188. package/library/skills/driving-the-editor-ui/resource.yaml +1 -1
  189. package/library/skills/environment-kit/SKILL.md +20 -16
  190. package/library/skills/environment-kit/resource.yaml +1 -1
  191. package/library/skills/export-and-ship/SKILL.md +6 -6
  192. package/library/skills/export-and-ship/resource.yaml +1 -1
  193. package/library/skills/fabricating-assets/SKILL.md +7 -7
  194. package/library/skills/fabricating-assets/resource.yaml +3 -3
  195. package/library/skills/facial-and-lipsync/SKILL.md +14 -15
  196. package/library/skills/facial-and-lipsync/resource.yaml +1 -1
  197. package/library/skills/fps-controller/SKILL.md +33 -41
  198. package/library/skills/fps-controller/resource.yaml +1 -1
  199. package/library/skills/game-feel/SKILL.md +8 -8
  200. package/library/skills/game-feel/resource.yaml +1 -1
  201. package/library/skills/gameskill/SKILL.md +4 -4
  202. package/library/skills/gameskill/resource.yaml +1 -1
  203. package/library/skills/gdscript-patterns/SKILL.md +1 -1
  204. package/library/skills/gdscript-patterns/resource.yaml +1 -1
  205. package/library/skills/generate-motion/SKILL.md +30 -21
  206. package/library/skills/generate-motion/resource.yaml +1 -1
  207. package/library/skills/godogen-visual-proof-game-generation/SKILL.md +1 -1
  208. package/library/skills/godogen-visual-proof-game-generation/resource.yaml +1 -0
  209. package/library/skills/grow-analytics/SKILL.md +3 -3
  210. package/library/skills/grow-analytics/resource.yaml +1 -1
  211. package/library/skills/headless-scripting/SKILL.md +1 -1
  212. package/library/skills/headless-scripting/resource.yaml +1 -1
  213. package/library/skills/in-game-purchases/SKILL.md +1 -1
  214. package/library/skills/in-game-purchases/resource.yaml +1 -1
  215. package/library/skills/instantiate-asset-pack/SKILL.md +2 -2
  216. package/library/skills/instantiate-asset-pack/resource.yaml +1 -1
  217. package/library/skills/lumera-single-image-scene-reconstruction/resource.yaml +1 -0
  218. package/library/skills/make-game/SKILL.md +4 -4
  219. package/library/skills/make-game/references/2d-platformer.md +1 -1
  220. package/library/skills/make-game/references/3d-fps.md +1 -1
  221. package/library/skills/make-game/references/3d-horror.md +1 -1
  222. package/library/skills/make-game/references/3d-third-person.md +2 -2
  223. package/library/skills/make-game/resource.yaml +1 -1
  224. package/library/skills/multiplayer/SKILL.md +1 -1
  225. package/library/skills/multiplayer/resource.yaml +1 -1
  226. package/library/skills/multiplayer-movement/SKILL.md +1 -1
  227. package/library/skills/multiplayer-movement/resource.yaml +1 -1
  228. package/library/skills/multiplayer-project/SKILL.md +1 -1
  229. package/library/skills/multiplayer-project/resource.yaml +1 -1
  230. package/library/skills/multiplayer-publish/SKILL.md +8 -7
  231. package/library/skills/multiplayer-publish/resource.yaml +3 -3
  232. package/library/skills/multiplayer-state/SKILL.md +1 -1
  233. package/library/skills/multiplayer-state/resource.yaml +1 -1
  234. package/library/skills/multiplayer-testing/SKILL.md +1 -1
  235. package/library/skills/multiplayer-testing/resource.yaml +1 -1
  236. package/library/skills/music-track/SKILL.md +22 -13
  237. package/library/skills/music-track/resource.yaml +1 -1
  238. package/library/skills/navigate-summer/SKILL.md +11 -9
  239. package/library/skills/navigate-summer/resource.yaml +1 -1
  240. package/library/skills/new-project/SKILL.md +1 -1
  241. package/library/skills/new-project/resource.yaml +1 -1
  242. package/library/skills/organic-model/SKILL.md +24 -18
  243. package/library/skills/organic-model/resource.yaml +1 -1
  244. package/library/skills/pixel-art/SKILL.md +27 -23
  245. package/library/skills/pixel-art/resource.yaml +1 -1
  246. package/library/skills/play/SKILL.md +1 -1
  247. package/library/skills/play/resource.yaml +1 -1
  248. package/library/skills/playtesting-a-feature/SKILL.md +1 -1
  249. package/library/skills/playtesting-a-feature/resource.yaml +1 -1
  250. package/library/skills/procedural-animation/SKILL.md +20 -16
  251. package/library/skills/procedural-animation/resource.yaml +1 -1
  252. package/library/skills/prop-model/SKILL.md +25 -19
  253. package/library/skills/prop-model/resource.yaml +1 -1
  254. package/library/skills/psx-retro-rendering/resource.yaml +1 -0
  255. package/library/skills/publish-your-game/SKILL.md +16 -6
  256. package/library/skills/publish-your-game/resource.yaml +3 -3
  257. package/library/skills/realtime-wet-surfaces/resource.yaml +1 -0
  258. package/library/skills/release-readiness/SKILL.md +1 -1
  259. package/library/skills/release-readiness/resource.yaml +1 -1
  260. package/library/skills/remote-deploy/SKILL.md +1 -1
  261. package/library/skills/remote-deploy/resource.yaml +1 -1
  262. package/library/skills/retarget/SKILL.md +23 -20
  263. package/library/skills/retarget/resource.yaml +1 -1
  264. package/library/skills/running-in-the-cloud/SKILL.md +1 -1
  265. package/library/skills/running-in-the-cloud/resource.yaml +1 -1
  266. package/library/skills/save-load/SKILL.md +1 -1
  267. package/library/skills/save-load/resource.yaml +1 -1
  268. package/library/skills/scene-composition/SKILL.md +1 -1
  269. package/library/skills/scene-composition/resource.yaml +1 -1
  270. package/library/skills/scene-hierarchy-design/SKILL.md +2 -2
  271. package/library/skills/scene-hierarchy-design/resource.yaml +1 -1
  272. package/library/skills/scene-scripting/SKILL.md +66 -636
  273. package/library/skills/scene-scripting/references/ctx-api.md +184 -0
  274. package/library/skills/scene-scripting/references/recipes-2d-ui.md +193 -0
  275. package/library/skills/scene-scripting/references/recipes-3d.md +280 -0
  276. package/library/skills/scene-scripting/resource.yaml +4 -4
  277. package/library/skills/scene-to-level/SKILL.md +2 -2
  278. package/library/skills/scene-to-level/resource.yaml +1 -1
  279. package/library/skills/skill-create/resource.yaml +1 -0
  280. package/library/skills/skill-improve/resource.yaml +1 -0
  281. package/library/skills/skill-test/SKILL.md +2 -2
  282. package/library/skills/skill-test/resource.yaml +1 -0
  283. package/library/skills/skintokens-auto-rigging/resource.yaml +1 -0
  284. package/library/skills/skybox-panorama/SKILL.md +27 -21
  285. package/library/skills/skybox-panorama/resource.yaml +1 -1
  286. package/library/skills/sound-effect/SKILL.md +29 -20
  287. package/library/skills/sound-effect/resource.yaml +1 -1
  288. package/library/skills/spatial-placement/SKILL.md +14 -9
  289. package/library/skills/spatial-placement/resource.yaml +1 -1
  290. package/library/skills/sprite-sheet/SKILL.md +32 -27
  291. package/library/skills/sprite-sheet/resource.yaml +1 -1
  292. package/library/skills/store-art/SKILL.md +3 -3
  293. package/library/skills/store-art/resource.yaml +2 -2
  294. package/library/skills/store-listing/SKILL.md +3 -3
  295. package/library/skills/store-listing/resource.yaml +2 -2
  296. package/library/skills/summer-analytics/SKILL.md +7 -5
  297. package/library/skills/summer-analytics/resource.yaml +2 -2
  298. package/library/skills/summer-apps/SKILL.md +48 -32
  299. package/library/skills/summer-apps/manifest.md +1 -1
  300. package/library/skills/summer-apps/minimal-app.md +7 -7
  301. package/library/skills/summer-apps/resource.yaml +1 -1
  302. package/library/skills/summer-apps/sdk-reference.md +5 -5
  303. package/library/skills/summer-apps-design/SKILL.md +1 -1
  304. package/library/skills/summer-apps-design/resource.yaml +1 -1
  305. package/library/skills/summer-assets/SKILL.md +56 -0
  306. package/library/skills/summer-assets/resource.yaml +34 -0
  307. package/library/skills/summer-store/SKILL.md +1 -1
  308. package/library/skills/text-to-motion/SKILL.md +30 -23
  309. package/library/skills/text-to-motion/prompts-and-controls.md +5 -5
  310. package/library/skills/text-to-motion/resource.yaml +1 -1
  311. package/library/skills/text-to-motion/rigging-for-text-motion.md +2 -2
  312. package/library/skills/tileable-texture/SKILL.md +19 -15
  313. package/library/skills/tileable-texture/resource.yaml +1 -1
  314. package/library/skills/trailer-shot/SKILL.md +28 -24
  315. package/library/skills/trailer-shot/resource.yaml +1 -1
  316. package/library/skills/tune-performance/SKILL.md +6 -6
  317. package/library/skills/tune-performance/resource.yaml +1 -1
  318. package/library/skills/ui-basics/SKILL.md +41 -36
  319. package/library/skills/ui-basics/resource.yaml +1 -1
  320. package/library/skills/ui-graphics/SKILL.md +47 -38
  321. package/library/skills/ui-graphics/resource.yaml +1 -1
  322. package/library/skills/use-widget-asset/SKILL.md +1 -1
  323. package/library/skills/use-widget-asset/resource.yaml +1 -1
  324. package/library/skills/using-summer/SKILL.md +6 -5
  325. package/library/skills/using-summer/resource.yaml +1 -1
  326. package/library/skills/vehicle-model/SKILL.md +65 -57
  327. package/library/skills/vehicle-model/resource.yaml +1 -1
  328. package/library/skills/verification-before-completion/SKILL.md +1 -1
  329. package/library/skills/verification-before-completion/resource.yaml +1 -1
  330. package/library/skills/verifying-scenes/SKILL.md +2 -2
  331. package/library/skills/verifying-scenes/resource.yaml +1 -1
  332. package/library/skills/vfx-dissolve/SKILL.md +2 -2
  333. package/library/skills/vfx-dissolve/resource.yaml +1 -1
  334. package/library/skills/vfx-fire/SKILL.md +15 -41
  335. package/library/skills/vfx-fire/resource.yaml +1 -1
  336. package/library/skills/vfx-hit-spark/SKILL.md +1 -1
  337. package/library/skills/vfx-hit-spark/resource.yaml +1 -1
  338. package/library/skills/vfx-lightning/SKILL.md +7 -16
  339. package/library/skills/vfx-lightning/resource.yaml +1 -1
  340. package/library/skills/vfx-magic-glow/SKILL.md +23 -32
  341. package/library/skills/vfx-magic-glow/resource.yaml +1 -1
  342. package/library/skills/vfx-muzzle-flash/SKILL.md +20 -35
  343. package/library/skills/vfx-muzzle-flash/resource.yaml +1 -1
  344. package/library/skills/vfx-smoke/SKILL.md +13 -31
  345. package/library/skills/vfx-smoke/resource.yaml +1 -1
  346. package/library/skills/vfx-water-ripple/SKILL.md +12 -31
  347. package/library/skills/vfx-water-ripple/resource.yaml +1 -1
  348. package/library/skills/voice-line/SKILL.md +71 -40
  349. package/library/skills/voice-line/resource.yaml +1 -1
  350. package/library/skills/web-and-touch-input/SKILL.md +1 -1
  351. package/library/skills/web-and-touch-input/resource.yaml +1 -1
  352. package/library/skills/web-compatibility-look/SKILL.md +1 -1
  353. package/library/skills/web-compatibility-look/resource.yaml +1 -1
  354. package/library/skills/world-building-3d/SKILL.md +1 -1
  355. package/library/skills/world-building-3d/resource.yaml +1 -1
  356. package/library/skills/writing-skills/resource.yaml +1 -0
  357. package/library/tools/add-node/GUIDE.md +14 -0
  358. package/library/tools/align-distribute-3d/GUIDE.md +7 -0
  359. package/library/tools/app-call/resource.yaml +1 -1
  360. package/library/tools/app-guide/resource.yaml +2 -2
  361. package/library/tools/app-page/resource.yaml +1 -1
  362. package/library/tools/app-screenshot/resource.yaml +19 -1
  363. package/library/tools/app-tools/resource.yaml +1 -1
  364. package/library/tools/attach-to-surface/GUIDE.md +15 -0
  365. package/library/tools/batch/GUIDE.md +27 -0
  366. package/library/tools/camera-bookmark/GUIDE.md +12 -0
  367. package/library/tools/capture-gameplay/GUIDE.md +3 -0
  368. package/library/tools/capture-gameplay/resource.yaml +3 -3
  369. package/library/tools/check-job/resource.yaml +1 -1
  370. package/library/tools/clear-console/GUIDE.md +3 -0
  371. package/library/tools/connect-ports/GUIDE.md +9 -0
  372. package/library/tools/connect-signal/GUIDE.md +14 -0
  373. package/library/tools/create-debug-report/GUIDE.md +10 -0
  374. package/library/tools/create-scene/GUIDE.md +10 -0
  375. package/library/tools/debug-views/GUIDE.md +7 -0
  376. package/library/tools/enable-plugin/GUIDE.md +3 -0
  377. package/library/tools/export-game/GUIDE.md +3 -0
  378. package/library/tools/export-game/resource.yaml +3 -3
  379. package/library/tools/export-templates/GUIDE.md +3 -0
  380. package/library/tools/fabricate-3d/GUIDE.md +19 -0
  381. package/library/tools/frame-nodes/GUIDE.md +9 -0
  382. package/library/tools/frame-shot/GUIDE.md +9 -0
  383. package/library/tools/game-control/GUIDE.md +9 -0
  384. package/library/tools/game-input/GUIDE.md +9 -0
  385. package/library/tools/game-probe/GUIDE.md +9 -0
  386. package/library/tools/generate-3d/resource.yaml +3 -3
  387. package/library/tools/generate-motion/resource.yaml +2 -2
  388. package/library/tools/get-console/GUIDE.md +9 -0
  389. package/library/tools/get-console/resource.yaml +5 -0
  390. package/library/tools/get-debugger-errors/GUIDE.md +7 -0
  391. package/library/tools/get-debugger-errors/resource.yaml +5 -0
  392. package/library/tools/get-debugger-warnings/GUIDE.md +7 -0
  393. package/library/tools/get-debugger-warnings/resource.yaml +5 -0
  394. package/library/tools/get-diagnostics/GUIDE.md +13 -0
  395. package/library/tools/get-project-context/GUIDE.md +25 -0
  396. package/library/tools/get-runtime-tree/GUIDE.md +7 -0
  397. package/library/tools/get-runtime-tree/resource.yaml +5 -0
  398. package/library/tools/get-scene-tree/GUIDE.md +11 -0
  399. package/library/tools/get-scene-tree/resource.yaml +5 -0
  400. package/library/tools/get-script-errors/GUIDE.md +5 -0
  401. package/library/tools/grep/GUIDE.md +11 -0
  402. package/library/tools/import-asset/GUIDE.md +8 -0
  403. package/library/tools/import-asset-by-id/GUIDE.md +12 -0
  404. package/library/tools/import-from-url/GUIDE.md +10 -0
  405. package/library/tools/import-from-url-batch/GUIDE.md +3 -0
  406. package/library/tools/import-hdri/GUIDE.md +16 -0
  407. package/library/tools/input-map-bind/GUIDE.md +11 -0
  408. package/library/tools/inspect-asset/GUIDE.md +14 -0
  409. package/library/tools/inspect-asset/resource.yaml +5 -0
  410. package/library/tools/inspect-node/GUIDE.md +11 -0
  411. package/library/tools/inspect-node/resource.yaml +5 -0
  412. package/library/tools/inspect-resource/GUIDE.md +7 -0
  413. package/library/tools/inspect-resource/resource.yaml +5 -0
  414. package/library/tools/inspect-runtime-node/GUIDE.md +7 -0
  415. package/library/tools/inspect-runtime-node/resource.yaml +5 -0
  416. package/library/tools/instantiate-scene/GUIDE.md +12 -0
  417. package/library/tools/is-running/GUIDE.md +3 -0
  418. package/library/tools/measure/GUIDE.md +8 -0
  419. package/library/tools/navigation-probe/GUIDE.md +9 -0
  420. package/library/tools/open/resource.yaml +2 -2
  421. package/library/tools/open-main-scene/GUIDE.md +6 -0
  422. package/library/tools/open-scene/GUIDE.md +8 -0
  423. package/library/tools/place-adjacent/GUIDE.md +7 -0
  424. package/library/tools/play/GUIDE.md +13 -0
  425. package/library/tools/project-setting/GUIDE.md +9 -0
  426. package/library/tools/publish-build/resource.yaml +6 -6
  427. package/library/tools/raycast/GUIDE.md +7 -0
  428. package/library/tools/read-file/GUIDE.md +10 -0
  429. package/library/tools/read-library/resource.yaml +5 -0
  430. package/library/tools/recent-events/GUIDE.md +7 -0
  431. package/library/tools/remove-node/GUIDE.md +3 -0
  432. package/library/tools/repeat-along/GUIDE.md +5 -0
  433. package/library/tools/replace-node/GUIDE.md +9 -0
  434. package/library/tools/replace-text/GUIDE.md +5 -0
  435. package/library/tools/run-editor-script/GUIDE.md +16 -0
  436. package/library/tools/run-script/GUIDE.md +30 -0
  437. package/library/tools/run-script/resource.yaml +6 -3
  438. package/library/tools/runtime-animate/GUIDE.md +7 -0
  439. package/library/tools/runtime-call/GUIDE.md +7 -0
  440. package/library/tools/runtime-set/GUIDE.md +9 -0
  441. package/library/tools/runtime-spawn/GUIDE.md +9 -0
  442. package/library/tools/save-scene/GUIDE.md +3 -0
  443. package/library/tools/scene-audit/GUIDE.md +29 -0
  444. package/library/tools/screenshot/GUIDE.md +17 -0
  445. package/library/tools/select-node/GUIDE.md +3 -0
  446. package/library/tools/set-prop/GUIDE.md +23 -0
  447. package/library/tools/set-resource-property/GUIDE.md +8 -0
  448. package/library/tools/shot-sheet/GUIDE.md +7 -0
  449. package/library/tools/snap-to-surface/GUIDE.md +17 -0
  450. package/library/tools/snapshot-diff/GUIDE.md +7 -0
  451. package/library/tools/starcast/GUIDE.md +12 -0
  452. package/library/tools/stop/GUIDE.md +3 -0
  453. package/library/tools/test-placement/GUIDE.md +7 -0
  454. package/library/tools/ui-actions/GUIDE.md +12 -0
  455. package/library/tools/ui-activate/GUIDE.md +11 -0
  456. package/library/tools/ui-screenshot/GUIDE.md +9 -0
  457. package/library/tools/ui-tree/GUIDE.md +10 -0
  458. package/library/tools/wait-for-event/GUIDE.md +11 -0
  459. package/library/tools/world-snapshot/GUIDE.md +9 -0
  460. package/library/tools/write-file/GUIDE.md +5 -0
  461. package/library/tools/zoom/GUIDE.md +5 -0
  462. package/package.json +6 -4
  463. package/registry/generated/counts.json +2 -2
  464. package/registry/generated/gemini-extension.json +4 -12
  465. package/registry/generated/index.json +433 -339
  466. package/registry/generated/marketplace.claude.json +2 -13
  467. package/registry/generated/plugin.claude.json +23 -22
  468. package/registry/generated/plugin.codex.json +4 -12
  469. package/registry/generated/plugin.cursor.json +4 -12
  470. package/registry/generated/plugin.factory.json +4 -12
  471. package/registry/generated/server.json +34 -0
  472. package/registry/generated/skills-index.md +119 -117
  473. package/registry/generated/skills-registry.json +153 -115
  474. package/registry/operations/fixtures/invalid-deprecated-without-replacement.json +60 -0
  475. package/registry/operations/fixtures/invalid-name.json +60 -0
  476. package/registry/operations/fixtures/invalid-publish-without-owner.json +82 -0
  477. package/registry/operations/fixtures/invalid-spend-without-estimate.json +42 -0
  478. package/registry/operations/fixtures/invalid-unknown-field.json +61 -0
  479. package/registry/operations/fixtures/valid-player-facing.json +82 -0
  480. package/registry/operations/fixtures/valid-read.json +60 -0
  481. package/registry/operations/fixtures/valid-spend.json +43 -0
  482. package/registry/operations/legacy-names.json +1206 -0
  483. package/registry/schemas/operation.schema.json +318 -0
  484. package/registry/schemas/skill.schema.json +4 -0
  485. package/CLAUDE.md +0 -7
@@ -147,8 +147,8 @@
147
147
  {
148
148
  "id": "reference/mcp-tools-reference",
149
149
  "kind": "reference",
150
- "version": "1.4.1",
151
- "content_hash": "572d526eaf371d4790fa52e050fe8d779ef26bd86af5677775f9a1814a1ab372",
150
+ "version": "1.4.2",
151
+ "content_hash": "a9312ef0240d688e2754cc88840bca9ffa835156abbaf1c04ff391ca3372679e",
152
152
  "summary": "Canonical reference for which Summer MCP tool to call — skills should reference tool names exactly as written here.",
153
153
  "use_when": [
154
154
  "choosing between Summer MCP tools and host tools for an operation",
@@ -172,11 +172,11 @@
172
172
  "id": "reference/product-map",
173
173
  "kind": "reference",
174
174
  "version": "1.0.0",
175
- "content_hash": "70a87d76241b98836e3d2b6979d35b953e7a934d156452417f1e731b7b9306ed",
175
+ "content_hash": "7834e717920def6e56cb3c0b67dcc56108f69522c6c2cd8df496877f9e9ab99e",
176
176
  "summary": "The product map — every summerengine.com page and editor surface an agent can open for the user, with intent phrases, URL or op, required context, and status.",
177
177
  "use_when": [
178
178
  "resolving where a user intent lives — \"where do I change my plan\", \"where are my published games\", \"how do I get to the MCP guide for Codex\"",
179
- "deciding whether a destination needs login, a running engine, or a parameter (gameId, path, node) before calling summer_open",
179
+ "deciding whether a destination needs login, a running engine, or a parameter (gameId, path, node) before calling studio.open (3.x `summer_open`)",
180
180
  "checking whether an editor surface (assistant dock, project settings, 2D/3D switch) can be opened on this engine build or is still planned"
181
181
  ],
182
182
  "facets": {
@@ -266,8 +266,8 @@
266
266
  "id": "skill/3d-lighting",
267
267
  "kind": "skill",
268
268
  "version": "1.0.3",
269
- "content_hash": "ba016d621986d5067721a7a089fd92eaa9a8a8641085fcf283c486aea6f137ca",
270
- "summary": "Set up 3D scene lighting — DirectionalLight3D vs Omni vs Spot, WorldEnvironment, sky, shadow tuning, ambient — per current Summer conventions.",
269
+ "content_hash": "642f47e5272cdf5e6a28c2f879eb81862c6afc242ab49991a43f1a0f1560b17b",
270
+ "summary": "Light a 3D scene: sun, omni and spot lights, WorldEnvironment, sky, shadows and ambient.",
271
271
  "use_when": [
272
272
  "setting up lighting in a Summer Engine 3D scene — adding lights, configuring WorldEnvironment, sky, or shadows",
273
273
  "a 3D scene looks flat, too dark, or washed out, or has harsh or missing shadows"
@@ -300,8 +300,8 @@
300
300
  "id": "skill/adaptive-music",
301
301
  "kind": "skill",
302
302
  "version": "1.0.2",
303
- "content_hash": "412051ddd407c196e42c1114878325b50c5fa500fcde921e17510d5c17ef2b35",
304
- "summary": "Wire music stems to game state — combat/explore/boss/tension crossfades on a shared bus, paired with a state machine and AudioBus structure.",
303
+ "content_hash": "d68f6ce0dcec80dec9dbeb85f3062ea567e542ef0963ca18c2591b783975f97c",
304
+ "summary": "Wire music stems to game state: combat, explore, boss and tension crossfades on a shared bus.",
305
305
  "use_when": [
306
306
  "wiring music stems to game state — combat / explore / boss / tension crossfades on a shared bus",
307
307
  "layered or vertical music that changes when combat starts"
@@ -335,8 +335,8 @@
335
335
  "id": "skill/agent-playtesting",
336
336
  "kind": "skill",
337
337
  "version": "1.0.0",
338
- "content_hash": "db2fb6587ceaeb70b70a77e616880bf6e4e897cc84ea3c7b28d7628c4d26d64c",
339
- "summary": "Playtest by driving the LIVE game — deterministic launch, frame-stamped probes before/after each action, exact frame steps, scripted or recorded input.",
338
+ "content_hash": "57113488f74ad2f6fab09dd0479068462347adaf37b7407ed1f9a831837e1ec1",
339
+ "summary": "Playtest by driving the live game: deterministic launch, frame-stamped probes, scripted or recorded input.",
340
340
  "use_when": [
341
341
  "proving a gameplay feature works by driving the running game frame by frame with the runtime tools (summer_game_probe, summer_game_input, summer_game_control, summer_runtime_set/call/spawn/animate)",
342
342
  "a bug repro or an A/B needs a deterministic launch (seed, fixed frame rate, offscreen instance), a recorded input replay, or two instances side by side",
@@ -393,8 +393,8 @@
393
393
  "id": "skill/ai-characters-in-games",
394
394
  "kind": "skill",
395
395
  "version": "0.3.0",
396
- "content_hash": "7ccd24e2c11e17af8a05bfcb5239ccff7636dc21b70b8de31965fa749a614785",
397
- "summary": "Safe AI characters in published games: no keys in the build, replies via Summer's player AI gateway, moderation, spend caps, offline brain and a report button.",
396
+ "content_hash": "6210aae5c1e7add43324def7d0e8f0ad5fef84a37980f780e654ea45fef06faf",
397
+ "summary": "Safe AI characters in published games: no keys in the build, Summer's player AI gateway, moderation, caps.",
398
398
  "use_when": [
399
399
  "a character, creature or object should answer free-form player text or speech in a published game (talking flowers, shopkeepers, companions)",
400
400
  "about to put a model name, a provider SDK or a provider key into a game project",
@@ -430,8 +430,8 @@
430
430
  "id": "skill/ambient-bed",
431
431
  "kind": "skill",
432
432
  "version": "1.0.3",
433
- "content_hash": "019312cde595bc12813c1fe6787cd0127f37e4933985930039214c58acbbdb45",
434
- "summary": "Generate a long looping location ambience — forest, dungeon, city, spaceship, cave — a looping AudioStreamPlayer on the Ambient bus with a seamless loop.",
433
+ "content_hash": "0ced10f5e56041727523869924af8ddf4edc897e409204987f48fc3fbfcf962f",
434
+ "summary": "Generate a long looping location ambience (forest, dungeon, city, cave) on the Ambient bus.",
435
435
  "use_when": [
436
436
  "generating a long looping location ambience — forest at dawn, dungeon air, city street, spaceship hum, cave drip — non-melodic and low-energy",
437
437
  "a location feels silent and needs a continuous soundscape beneath the score and effects"
@@ -459,8 +459,8 @@
459
459
  "id": "skill/animated-loop",
460
460
  "kind": "skill",
461
461
  "version": "1.0.4",
462
- "content_hash": "f94e9340295a16fd7fe8a3293d0dab2ea89f6f42e3334fa39346faa070c5a2fe",
463
- "summary": "Generate a short seamlessly-looping video clip — splash background, animated logo backdrop, idle title-screen footage — wired as a looping VideoStreamPlayer.",
462
+ "content_hash": "4a6802a9fc1647ec476ac77d3ef8075f4b67545c1f006ce27ac1233d45ee68b0",
463
+ "summary": "Generate a short seamless video loop: splash background, animated logo backdrop, idle title screen.",
464
464
  "use_when": [
465
465
  "generating a short looping video clip — splash screen background, animated logo backdrop, idle title-screen footage, looping environment ambience",
466
466
  "an idle backdrop behind the UI needs subtle motion without a real-time animated scene"
@@ -493,8 +493,8 @@
493
493
  "id": "skill/animation-tree",
494
494
  "kind": "skill",
495
495
  "version": "1.0.1",
496
- "content_hash": "73d4d06478e756ece56c234140423378595c96714fdbf3bbcdbe6887668f3d5c",
497
- "summary": "Design and wire AnimationTree state machines and blend trees so clips respond to gameplay — locomotion blends, attack interrupts, hit reactions.",
496
+ "content_hash": "34ce142b0864ec2242a72e7c8d54e6af0857969bb036dbd0c2102c6a99f1e583",
497
+ "summary": "Wire AnimationTree state machines and blend trees: locomotion blends, attack interrupts, hit reactions.",
498
498
  "use_when": [
499
499
  "the character has clips that must play in response to gameplay — idle/walk/run blends, attacks that interrupt locomotion, hit reactions",
500
500
  "a character keeps T-posing"
@@ -533,8 +533,8 @@
533
533
  "id": "skill/art-direction",
534
534
  "kind": "skill",
535
535
  "version": "1.0.2",
536
- "content_hash": "a1f4535516d2a6588801cfe2d1c88f3c211d5316ab0049495bb9d6b337b6a02f",
537
- "summary": "Define the game's visual style — references, palette, mood, lighting plan, post-processing, do/don't list — output as an art bible at .summer/art-bible.md.",
536
+ "content_hash": "c1f1593d81fbb49d6f8a5163fddafa89657bef62c83cae563cc054c7cc8bcb0a",
537
+ "summary": "Define the game's visual style (palette, mood, lighting, post) as an art bible in .summer/art-bible.md.",
538
538
  "use_when": [
539
539
  "defining the visual style of the game — references, palette, mood, lighting plan, post-processing",
540
540
  "make it look like PS1, retro, low-poly, pixel art, cel-shaded, or a horror aesthetic",
@@ -569,8 +569,8 @@
569
569
  "id": "skill/asset-strategy",
570
570
  "kind": "skill",
571
571
  "version": "1.0.3",
572
- "content_hash": "50357a6e850c4930e7f621c983a03aa93fb9088f937d08a215d1d3a7e5f523b6",
573
- "summary": "Route any 'I need a [thing]' asset request to the right specialist skill — disambiguates 2D / 3D / audio / video / VFX / animation pipelines.",
572
+ "content_hash": "06d2c91e86fd90c2b6e473f3fe80fae7c32002f308848e1ffe4cea818749c439",
573
+ "summary": "Route any 'I need a [thing]' asset request to the right skill: 2D, 3D, audio, video, VFX or animation.",
574
574
  "use_when": [
575
575
  "planning asset creation, picking an asset pipeline, or routing an 'I need a [thing]' request to the right specialist skill",
576
576
  "\"I need a sword / a forest / a boss theme / an explosion\" and it is unclear which pipeline (2D, 3D, audio, video, VFX, animation) fits",
@@ -593,6 +593,7 @@
593
593
  },
594
594
  "related": {
595
595
  "skills": [
596
+ "skill/summer-assets",
596
597
  "skill/character-portrait",
597
598
  "skill/concept-art",
598
599
  "skill/pixel-art",
@@ -638,8 +639,8 @@
638
639
  "id": "skill/audio-direction",
639
640
  "kind": "skill",
640
641
  "version": "1.0.7",
641
- "content_hash": "c9d7324e75b87eb183d0e0c0787aacd75008a1797b6fb58de6bf8273971c5ce9",
642
- "summary": "Define the game's sonic identity — music style, instruments, SFX vocabulary, dynamic music plan — output as an audio bible at .summer/audio-bible.md.",
642
+ "content_hash": "4280cb8e28a7dd610c2aab68749511db71a4c097b858f4cbfa997e040d729813",
643
+ "summary": "Define the game's sound (music style, SFX vocabulary, dynamic music) as .summer/audio-bible.md.",
643
644
  "use_when": [
644
645
  "defining the sonic identity — music style, instruments, SFX vocabulary, dynamic music plan",
645
646
  "starting audio work with no audio bible, or soundtrack and SFX requests keep drifting in style",
@@ -677,8 +678,8 @@
677
678
  "id": "skill/auto-fire-targeting",
678
679
  "kind": "skill",
679
680
  "version": "1.0.0",
680
- "content_hash": "a162dd6cfb3980e873cbc878ba333857cec52ee3e37f803354a9275e42c1fdec",
681
- "summary": "Design or fix auto-fire weapon targeting (survivors, top-down ARPG, tower defense) — the pending-damage pattern that prevents over-commit and overkill.",
681
+ "content_hash": "d56fd23a4e047f92bdf7c97ca34f334e907cf2d387093c751773036936c1ac08",
682
+ "summary": "Fix auto-fire targeting (survivors, ARPG, tower defense) with pending damage to stop overkill.",
682
683
  "use_when": [
683
684
  "designing or fixing the targeting system for an auto-fire weapon (survivors-genre, top-down ARPG, tower-defense)",
684
685
  "bullet flight time longer than fire rate causes wasted bullets or overkill"
@@ -705,8 +706,8 @@
705
706
  "id": "skill/bounded-engine-runs",
706
707
  "kind": "skill",
707
708
  "version": "1.0.0",
708
- "content_hash": "59795a003543231c774238368a037e26c6fe10e25a4829761cdcadccceb72e5d",
709
- "summary": "Run Summer headless or offscreen safely from an agent: time limits, one engine per project, muted runs, import passes, tests that fail on crashes.",
709
+ "content_hash": "72fce40636e955a537daa8497200d621b0402987c600b8a09bb1fc43d1bd3247",
710
+ "summary": "Run Summer headless or offscreen safely: time limits, one engine per project, import passes, crash checks.",
710
711
  "use_when": [
711
712
  "running the engine from a shell or agent for tests, imports, captures or bots",
712
713
  "several agents or processes share one project",
@@ -743,8 +744,8 @@
743
744
  "id": "skill/brainstorm-game",
744
745
  "kind": "skill",
745
746
  "version": "1.0.3",
746
- "content_hash": "59bccd86e1345f3a2f6fe0264557d73c8194b3f196c65c1d1e45ee2dcdf6f353",
747
- "summary": "Turn a vague idea into a buildable plan — genre, scope, core loop, mechanics, art direction — written as a 1-page brief to .summer/GameSoul.md.",
747
+ "content_hash": "cc04b16ff395a21c9bcd5ff818d2e9fbe49d94d71ae32c968d521fb9f2896f82",
748
+ "summary": "Turn a vague game idea into a 1-page brief (genre, scope, core loop, mechanics) in .summer/GameSoul.md.",
748
749
  "use_when": [
749
750
  "the user wants help deciding what game to make, scoping a new project, or turning a vague idea into a buildable plan",
750
751
  "the user has a genre, theme, or one-line pitch but no core loop, scope, or brief yet"
@@ -780,8 +781,8 @@
780
781
  "id": "skill/brainstorming",
781
782
  "kind": "skill",
782
783
  "version": "1.0.3",
783
- "content_hash": "d62ca3bc1a3ed3b31961e006f0f20de35addab3fd9b0d69cff4228162e72729d",
784
- "summary": "Explore user intent, requirements, and design before implementation — must run before any creative work: features, components, mechanics, behavior.",
784
+ "content_hash": "38b92473d672960817304b2fe6300ce9b60e3e497507e18573a53ae2a1c86440",
785
+ "summary": "Explore user intent, requirements and design before any creative work: features, mechanics, behavior.",
785
786
  "use_when": [
786
787
  "starting creative work — designing a game, picking a mechanic, building features or components, modifying behavior",
787
788
  "a request is ambiguous about goals or constraints and work would otherwise start on guesses"
@@ -808,8 +809,8 @@
808
809
  "id": "skill/browse-templates",
809
810
  "kind": "skill",
810
811
  "version": "1.0.5",
811
- "content_hash": "40839f90ee91e540ef51c46d3cc1d09d1f78136a445df6df81169c79b7ef22de",
812
- "summary": "List available Summer Engine project templates, present the choices, and create a project from the chosen one via summer create.",
812
+ "content_hash": "f89a515868f1f29b980172f753c0bfabc002edddb792071e4cf9a494c98ef417",
813
+ "summary": "List Summer Engine project templates, present the choices, and create a project from the chosen one.",
813
814
  "use_when": [
814
815
  "the user wants to see available Summer Engine project templates, start from an existing template, or asks what templates exist",
815
816
  "picking a starting point and unsure which starter templates already exist"
@@ -836,8 +837,8 @@
836
837
  "id": "skill/camera-rigs",
837
838
  "kind": "skill",
838
839
  "version": "1.0.0",
839
- "content_hash": "52cec93f1f8eb2e5d7bd2c0572fad53cace2129bc32a91005ae5675bfa9f7d00",
840
- "summary": "Camera rigs for 2D and 3D: Camera2D follow with limits, first-person head camera, SpringArm3D third-person, orthographic top-down, FOV guidance.",
840
+ "content_hash": "d8af4a06b5d3e821373bf04dda3ef282d12c4d135f6d61acc024f21b9801b41d",
841
+ "summary": "Camera rigs: Camera2D follow with limits, first-person head, SpringArm3D third-person, top-down, FOV.",
841
842
  "use_when": [
842
843
  "black screen on play, or the camera shows past the level edge",
843
844
  "jerky camera follow, wrong FOV, or the third-person camera clips into walls",
@@ -874,7 +875,7 @@
874
875
  "id": "skill/celeste-momentum-platforming",
875
876
  "kind": "skill",
876
877
  "version": "0.1.1",
877
- "content_hash": "8de0a20f2c75831147c5282b86267f1caa3ca4381c753f186ffe95eb720f929f",
878
+ "content_hash": "9f0101c592bb02a6b3b9acabd2fca32ed8cea258eb4e2593657bbd8587f4ae30",
878
879
  "summary": "Celeste-style 2D precision platformer movement — momentum running, coyote time, variable jumps, dash, wall jump/slide, climb stamina, pixel corner correction.",
879
880
  "use_when": [
880
881
  "make the platformer movement feel like Celeste",
@@ -913,8 +914,8 @@
913
914
  "id": "skill/character-animation-wiring",
914
915
  "kind": "skill",
915
916
  "version": "1.0.1",
916
- "content_hash": "304420000b2b72164f244e4a406fff8088cd77e30142a9508e855ac484d24c2c",
917
- "summary": "Wire a rigged, animated character end to end — inspect real clips and bones, locomotion state machine, method-track events, poses, blend shapes, root motion.",
917
+ "content_hash": "d9ad989d626c02d2a0e0c7404c5e0029d38c6a770d25d2297de99d1aacd9b0ca",
918
+ "summary": "Wire a rigged character end to end: real clips and bones, locomotion states, method tracks, root motion.",
918
919
  "use_when": [
919
920
  "a rigged GLB or Meshy rig with generated clips is in the scene and needs idle/walk/run wiring with blend times",
920
921
  "footstep or attack-frame events, head tracking, still poses, blend-shape facial keys, or root motion must be hooked up",
@@ -960,8 +961,8 @@
960
961
  "id": "skill/character-model",
961
962
  "kind": "skill",
962
963
  "version": "1.0.2",
963
- "content_hash": "0175a47a39e6d3cfd30abd703783a9acb48811b67a5aecdcfe9b3ad5f0d5d328",
964
- "summary": "Generate a rigged humanoid — player, NPC, enemy, boss — via T-pose reference, user-gated preview, and Meshy auto-rig, wired as CharacterBody3D or Node3D.",
964
+ "content_hash": "52255cc91031def00e12628305d603679ad0d316d96bf37797d47694d75e0084",
965
+ "summary": "Generate a rigged humanoid (player, NPC, enemy, boss) from a T-pose reference, previewed before rigging.",
965
966
  "use_when": [
966
967
  "generating a humanoid character ready for animation — player avatar, NPC, enemy, boss, companion",
967
968
  "the user asks for a rigged humanoid or a model with a skeleton"
@@ -1003,8 +1004,8 @@
1003
1004
  "id": "skill/character-movement",
1004
1005
  "kind": "skill",
1005
1006
  "version": "1.2.1",
1006
- "content_hash": "44b3db25a9e0d9d027f992c5a50b1e66b48bb65e829297cc4e16500971d0a267",
1007
- "summary": "Player controllers for 2D and 3D, plus the canonical third-person controller for Summer humanoid packages: movement owns translation, clips follow state.",
1007
+ "content_hash": "3e125c328215ef81b169b0129c2c245ec59546a886d1d49a551e7cfc2e155b52",
1008
+ "summary": "Player controllers for 2D and 3D, plus the standard third-person controller for Summer humanoids.",
1008
1009
  "use_when": [
1009
1010
  "building or fixing player movement — gravity, collision, side-scroller, top-down, or 3D walk",
1010
1011
  "wiring an imported Summer character package (character.tscn) as the playable third-person player",
@@ -1049,8 +1050,8 @@
1049
1050
  "id": "skill/character-portrait",
1050
1051
  "kind": "skill",
1051
1052
  "version": "1.0.4",
1052
- "content_hash": "9584c7d4a920b2813fa7677fddff728489a3548c0fbb1043d6246883d730871e",
1053
- "summary": "Generate a single polished character bust for dialogue UI, character select, lore cards, or codex entries. One character, locked composition, VN-style.",
1053
+ "content_hash": "2e00aee4de5bccead370e6a9f99e5a9ca177b8687afa656f49facd4ccdfdb28e",
1054
+ "summary": "Generate one polished character bust for dialogue UI, character select, lore cards or codex entries.",
1054
1055
  "use_when": [
1055
1056
  "generating a single polished bust/portrait of a character for dialogue UI, character-select screens, lore cards, or codex entries",
1056
1057
  "a dialogue box, party roster, or codex entry needs one consistent face for a named character"
@@ -1086,8 +1087,8 @@
1086
1087
  "id": "skill/cinematic-cutscene",
1087
1088
  "kind": "skill",
1088
1089
  "version": "1.0.4",
1089
- "content_hash": "a2a499d2c483b07ff3d034280387caf3ffef7c48a99ad37761e931353adbe48c",
1090
- "summary": "Generate a non-interactive cutscene — reference-locked look, a 5-10s image-to-video shot, optional TTS dialogue — wired as a fading VideoStreamPlayer.",
1090
+ "content_hash": "cc3dc8f58020a25e2eea1dee638e9c66e41dc4f22f1985b7682f1e2c5b3d3313",
1091
+ "summary": "Generate a non-interactive cutscene: a reference-locked 5-10s video shot with optional voiced dialogue.",
1091
1092
  "use_when": [
1092
1093
  "generating a non-interactive cutscene clip — opening scene, story beat, character intro, ending",
1093
1094
  "a story beat needs a short pre-rendered clip between gameplay sections — intro, transition, ending"
@@ -1122,8 +1123,8 @@
1122
1123
  "id": "skill/combat-basics",
1123
1124
  "kind": "skill",
1124
1125
  "version": "1.0.0",
1125
- "content_hash": "05ad738d3878536e1afda464941584d2c765919b1f026869d1e765428e8a46a5",
1126
- "summary": "Damage in Summer Engine: hitbox and hurtbox Areas on opposing layers, a reusable Health component, damage signals, knockback, hit feedback, projectiles.",
1126
+ "content_hash": "4ac9c26d394acdf6a968e670ba3f80d60b5f9687c168fd043903f10036579d45",
1127
+ "summary": "Damage: hitbox and hurtbox Areas, a reusable Health component, damage signals, knockback, projectiles.",
1127
1128
  "use_when": [
1128
1129
  "adding attacks, health and damage, or enemies that can be hit and hit back",
1129
1130
  "adding projectiles or bullets — homing, piercing, area-of-effect, or pooling hundreds of them",
@@ -1162,8 +1163,8 @@
1162
1163
  "id": "skill/compatibility-renderer-traps",
1163
1164
  "kind": "skill",
1164
1165
  "version": "1.0.0",
1165
- "content_hash": "7fbd6cc526c0c0776e932091e815e6914d9a2c2d6b7d5f8565c0455621b2bf08",
1166
- "summary": "Make a Forward+ Summer game also look right on the Compatibility renderer: instance-uniform budget, black MultiMesh colors, sRGB vertex colors.",
1166
+ "content_hash": "717f454dbe00afe97e7a5d29b75fa8ec5da44a79c3171b73d5f47ab52d9cbc8b",
1167
+ "summary": "Make a Forward+ game look right on the Compatibility renderer: instance uniforms, MultiMesh, vertex colors.",
1167
1168
  "use_when": [
1168
1169
  "a game must run on phones or weak GPUs that may use the Compatibility or Mobile renderer",
1169
1170
  "objects render black, pale or stop animating on one renderer but not another",
@@ -1199,8 +1200,8 @@
1199
1200
  "id": "skill/concept-art",
1200
1201
  "kind": "skill",
1201
1202
  "version": "1.0.2",
1202
- "content_hash": "605c7ada815fb013d448f43349c12b2961159041e77568cf228daa1d9420a540",
1203
- "summary": "Explore art direction with 3-4 rough concept variants of a character, environment, or prop to pick a vibe before committing to a final asset.",
1203
+ "content_hash": "bea296126e5eee71010085701555aea98ea45b5f50a73cfef411b991ff439ab2",
1204
+ "summary": "Explore art direction with 3-4 rough concept variants of a character, environment or prop.",
1204
1205
  "use_when": [
1205
1206
  "exploring art direction with rough variants before committing to a final asset",
1206
1207
  "the user wants a mood board, rough sketches, or 'what could this look like'"
@@ -1234,12 +1235,61 @@
1234
1235
  "status": "stable",
1235
1236
  "recommended": true
1236
1237
  },
1238
+ {
1239
+ "id": "skill/concept-to-level",
1240
+ "kind": "skill",
1241
+ "version": "1.0.0",
1242
+ "content_hash": "3de1238f87e37f5786886a06998898cca64c7616436240845b99b512a0a1097d",
1243
+ "summary": "Take a 3D map from concept art to a polished, shippable level, with the questions to ask the user, owned lanes, render checks and collision kept in step.",
1244
+ "use_when": [
1245
+ "polishing a 3D map or arena from concept art to shipping quality, with real materials, props, sky and effects",
1246
+ "reworking a level's theme and art while keeping its gameplay layout, with several agents working on one map",
1247
+ "deciding which questions to ask the user before building or polishing a level"
1248
+ ],
1249
+ "facets": {
1250
+ "lifecycle": [
1251
+ "build"
1252
+ ],
1253
+ "domains": [
1254
+ "level-design",
1255
+ "3d",
1256
+ "world-building",
1257
+ "agent-workflow"
1258
+ ],
1259
+ "modalities": [
1260
+ "scenes",
1261
+ "assets",
1262
+ "shaders",
1263
+ "docs"
1264
+ ]
1265
+ },
1266
+ "compatibility": {
1267
+ "engine": ">=4.6"
1268
+ },
1269
+ "related": {
1270
+ "skills": [
1271
+ "skill/concept-art",
1272
+ "skill/art-direction",
1273
+ "skill/design-level",
1274
+ "skill/scene-to-level",
1275
+ "skill/environment-kit",
1276
+ "skill/fabricating-assets",
1277
+ "skill/headless-scripting",
1278
+ "skill/bounded-engine-runs",
1279
+ "skill/verifying-scenes",
1280
+ "skill/tune-performance",
1281
+ "skill/dispatching-parallel-agents"
1282
+ ]
1283
+ },
1284
+ "status": "preview",
1285
+ "recommended": false
1286
+ },
1237
1287
  {
1238
1288
  "id": "skill/create-asset-sheet",
1239
1289
  "kind": "skill",
1240
1290
  "version": "1.0.3",
1241
- "content_hash": "1c4120f049dcacfa25737164312d1e9dbd409b96f06817ca4eb00986fddcd6fa",
1242
- "summary": "Generate a pack of 2D game assets from one prompt — tile sheet, UI kit, character pack, or biome set — sliced, classified, and saved as one pack ArtAsset.",
1291
+ "content_hash": "e9e41cad143dd457407a80a18e922559319dba79f0a42070c34ed3ae6855b0b7",
1292
+ "summary": "Generate a pack of 2D assets from one prompt (tile sheet, UI kit, character pack, biome), sliced.",
1243
1293
  "use_when": [
1244
1294
  "generating a pack of 2D game assets from a single prompt — a tile sheet, UI kit, menu screen, character pack, or biome set",
1245
1295
  "many matching sprites, tiles, or UI pieces are needed in one consistent style at once"
@@ -1278,8 +1328,8 @@
1278
1328
  "id": "skill/debug",
1279
1329
  "kind": "skill",
1280
1330
  "version": "1.0.4",
1281
- "content_hash": "8dc1a0b8e8300689e03ab0c6130969f757362d6f5267f9074d541842da857c28",
1282
- "summary": "Disciplined bug/crash/error loop for Summer projects — script errors, console, debugger, hypothesis, fix, verify — before making code or scene changes.",
1331
+ "content_hash": "4d94153a19fe0273b6e12b4e105313c9563cb1377dbd559594e7743ac1d6ac73",
1332
+ "summary": "Disciplined bug, crash and error loop: script errors, console, debugger, hypothesis, fix, verify.",
1283
1333
  "use_when": [
1284
1334
  "the user reports a bug, crash, error, or unexpected behavior in a Summer project, before making code or scene changes",
1285
1335
  "the player falls through the floor or clips through walls",
@@ -1316,8 +1366,8 @@
1316
1366
  "id": "skill/debugging-game-feel",
1317
1367
  "kind": "skill",
1318
1368
  "version": "1.0.3",
1319
- "content_hash": "e88278eea6c12420a437e5e3bc43c9f1e4aa7c9c3f64fe8419acdbe55b4f2812",
1320
- "summary": "Debug features that work but feel wrong — floaty jumps, mushy combat, sluggish camera — subjective bugs living in tuning, timing, and feedback layers.",
1369
+ "content_hash": "6a30b819be7c884d4ee08a97519dc9498277e5a7362680f701b55da545bb68b6",
1370
+ "summary": "Debug features that work but feel wrong: floaty jumps, mushy combat, sluggish camera.",
1321
1371
  "use_when": [
1322
1372
  "a gameplay feature works correctly but feels wrong — floaty jumps, mushy combat, sluggish camera, weightless impacts",
1323
1373
  "tuning jump height, gravity, camera lag, hit-stop, or impact feedback until controls feel right"
@@ -1344,8 +1394,8 @@
1344
1394
  "id": "skill/design-level",
1345
1395
  "kind": "skill",
1346
1396
  "version": "1.0.3",
1347
- "content_hash": "3d382ef56ba0c97a6e56106ecaade99186c92b12b8b08a84692fc823b6764ae2",
1348
- "summary": "Design a single level — layout, pacing, encounters, secrets, reward gating — outputs a level design doc and a node-tree skeleton for summer_create_scene.",
1397
+ "content_hash": "626ce92f5c0d43150a81f64d456f539753ae0e56e4bfc80e43b04b585ad659af",
1398
+ "summary": "Design one level (layout, pacing, encounters, secrets) as a design doc plus a node-tree skeleton.",
1349
1399
  "use_when": [
1350
1400
  "designing a single level — layout, pacing, encounters, secrets, reward gating",
1351
1401
  "turning a level idea into a layout with a critical path, encounters, secrets, and pacing beats"
@@ -1382,8 +1432,8 @@
1382
1432
  "id": "skill/design-mechanic",
1383
1433
  "kind": "skill",
1384
1434
  "version": "1.0.2",
1385
- "content_hash": "f2cdec2de023d0b21e09c2de3147cd1ee141bf18ea272323cacf93aceb7c5e2b",
1386
- "summary": "Design one game mechanic in detail — input, response, feedback, failure modes, depth, tunables — outputs a design doc, node-graph sketch, GDScript stub.",
1435
+ "content_hash": "00f443a64153ac9711f854b127c6b4e74c67fc13425a00ab95f4ef8019c33ffd",
1436
+ "summary": "Design one mechanic in detail (input, feedback, failure modes, tunables) as a doc plus a script stub.",
1387
1437
  "use_when": [
1388
1438
  "designing one specific game mechanic in detail — input, response, feedback, failure modes, depth, tunables",
1389
1439
  "add a grappling hook, dash, double jump, wall run, or parry"
@@ -1420,8 +1470,8 @@
1420
1470
  "id": "skill/design-npc",
1421
1471
  "kind": "skill",
1422
1472
  "version": "1.0.2",
1423
- "content_hash": "17afb4ce14e33b5e85ca6aab6c02f9ced74124cf5bd221bd7465c9d714052948",
1424
- "summary": "Design enemy/NPC/boss/companion behavior — perception, personality, intent, action state machine, telegraphs — outputs a GDScript stub plus node tree.",
1473
+ "content_hash": "f4d88169fe7bfb8c758a3697a035a38b8e242c690bc2ca3169871ffb91dcf70a",
1474
+ "summary": "Design enemy, NPC, boss or companion behavior: perception, state machine, telegraphs, script stub.",
1425
1475
  "use_when": [
1426
1476
  "designing an enemy, NPC, boss, companion, civilian, or wave-spawned mob's behavior — perception, intent, state machine, telegraphs, defeat handling",
1427
1477
  "enemies that patrol, chase, attack, or flee when they see the player (line of sight)"
@@ -1456,8 +1506,8 @@
1456
1506
  "id": "skill/diagnosing-perf-regressions",
1457
1507
  "kind": "skill",
1458
1508
  "version": "1.0.3",
1459
- "content_hash": "09755583fb2deae78e6c364c326c49697dba206008077faae3d8161c64db59bd",
1460
- "summary": "Find why frame rate, frame time, or load time got worse since a known-good state — regression hunting, not general performance tuning.",
1509
+ "content_hash": "acc881c5f693fece5ae59cd04abba8102312ebd76b131492fec9a7f4a8f55d05",
1510
+ "summary": "Find why frame rate, frame time or load time got worse since a known-good state.",
1461
1511
  "use_when": [
1462
1512
  "frame rate, frame time, or load time has gotten worse since a known-good state — 'it used to run at 60, now it's at 30'",
1463
1513
  "bisecting recent scene, script, or asset changes to find which one slowed frame time or loading"
@@ -1512,8 +1562,8 @@
1512
1562
  "id": "skill/driving-the-editor-ui",
1513
1563
  "kind": "skill",
1514
1564
  "version": "1.0.0",
1515
- "content_hash": "a82a77a3496e6babf61ac41887cafcbeebad328611a30a82da45e8a2debd86ce",
1516
- "summary": "Drive the editor UI by name: invoke actions, clear blocking dialogs, switch the main screen, read a dock — and route scene work to the scene tools instead.",
1565
+ "content_hash": "d4a8fbf378c8f36cee97cec9fb60a23d8fcc9574418d624bbdb3617c082b2b0f",
1566
+ "summary": "Drive the editor UI by name: run actions, clear blocking dialogs, switch screens, read a dock.",
1517
1567
  "use_when": [
1518
1568
  "an editor-workflow step a human would do with the mouse — open the Import dock, switch the 2D/3D/Script main screen, toggle a bottom panel, open an editor dialog by name",
1519
1569
  "a dialog or popup is blocking the editor and tool calls come back modal_open — see it (summer_ui_tree root dialogs) and clear it (summer_ui_activate action dismiss_dialog)",
@@ -1563,8 +1613,8 @@
1563
1613
  "id": "skill/environment-kit",
1564
1614
  "kind": "skill",
1565
1615
  "version": "1.0.3",
1566
- "content_hash": "7589bfcd29aa233962c8747ab33218bbf42ec695f97efb506dca1a99209aa15d",
1567
- "summary": "Generate a modular environment kit — wall pieces, floor tiles, pillars, doors, arches, corners — snap-together meshes sharing one visual style.",
1616
+ "content_hash": "250bafe09e11fb0a2b46d15f9e93ca021531ea1050535739ca93db71224ff032",
1617
+ "summary": "Generate a modular environment kit: walls, floor tiles, pillars, doors, arches in one visual style.",
1568
1618
  "use_when": [
1569
1619
  "generating a modular environment kit of snap-together pieces that form a level — dungeon kit, modular walls, interior pieces",
1570
1620
  "building a dungeon, interior, or town kit from repeatable pieces that snap together in one style"
@@ -1599,8 +1649,8 @@
1599
1649
  "id": "skill/export-and-ship",
1600
1650
  "kind": "skill",
1601
1651
  "version": "1.0.3",
1602
- "content_hash": "c0ed1e67fe9a32ea1ad869dd2c1c320f74816696a87ad17ab40a26cdd138d5c9",
1603
- "summary": "Assess and prepare a game export: inventory installed templates and targets, validate release assets and config, produce supported builds after approval.",
1652
+ "content_hash": "45bb69983e128f9fb20a668938351bcb2d49bc00c99d553f1953d55125575f09",
1653
+ "summary": "Prepare a game export: check templates and targets, validate release assets, build after approval.",
1604
1654
  "use_when": [
1605
1655
  "the user wants to assess or prepare a Summer game export — Steam, itch, HTML5, iOS, Android targets as available in the installed build",
1606
1656
  "the user says 'publish my game', 'release it', or 'ship a build to players' — produce the build they will upload"
@@ -1634,8 +1684,8 @@
1634
1684
  "id": "skill/fabricating-assets",
1635
1685
  "kind": "skill",
1636
1686
  "version": "1.0.0",
1637
- "content_hash": "43f25276757fe377069a5b3e2a37ebdeb58251614c2762d82314252d10e0b596",
1638
- "summary": "Fabricate meshes with a bpy script in the user's own Blender (summer_fabricate_3d) — kits with exact dimensions, VFX meshes, post-processing generated models.",
1687
+ "content_hash": "a48703256e711b0d879ac0117279cd02df8aced54aa8691671f09c3a0dcc906c",
1688
+ "summary": "Fabricate meshes with a Blender script (summer_fabricate_3d): exact-size kits, VFX meshes, post-processing.",
1639
1689
  "use_when": [
1640
1690
  "writing a Blender Python (bpy) script for summer_fabricate_3d and deciding whether fabrication, generation, or the free library is the right route for an asset",
1641
1691
  "a parametric hard-surface set with exact dimensions, booleans, bevels, and shared materials that must stay consistent across many pieces",
@@ -1691,8 +1741,8 @@
1691
1741
  "id": "skill/facial-and-lipsync",
1692
1742
  "kind": "skill",
1693
1743
  "version": "1.0.2",
1694
- "content_hash": "e4c916e5e155b95fc71912a1cf039eba3b1bbe45afa2224e7a8d11529bbedbf0",
1695
- "summary": "Make a character's mouth move with a voice-over — phoneme extraction from audio, viseme blendshape mapping, and emotional facial expressions.",
1744
+ "content_hash": "f9ef604ec75b42dada1cb8e9001b4ce5a21b148f391979b7917a408c3da67e5d",
1745
+ "summary": "Make a character's mouth move with a voice-over: phonemes, viseme blendshapes, facial expressions.",
1696
1746
  "use_when": [
1697
1747
  "the user has (or wants) a voice-over and needs the character's mouth to move with the words",
1698
1748
  "adding emotional facial expressions (smile, frown, surprise)"
@@ -1730,8 +1780,8 @@
1730
1780
  "id": "skill/fps-controller",
1731
1781
  "kind": "skill",
1732
1782
  "version": "1.0.4",
1733
- "content_hash": "5192c5c10811b37fe991539bff72fa7556910af2c72acd473b87cdfcb62512b3",
1734
- "summary": "Production-quality first-person controller — WASD, mouse look, jump, coyote time, jump buffering, air control, and external-velocity handling.",
1783
+ "content_hash": "61fdc450098e144fc487cdf26b3b64193dac32520f5ae5cce8a0fb3105199547",
1784
+ "summary": "First-person controller: WASD, mouse look, jump, coyote time, jump buffering, air control.",
1735
1785
  "use_when": [
1736
1786
  "building an FPS, first-person movement, or a 3D character that walks, jumps, and reacts to external forces",
1737
1787
  "a first-person prototype needs solid movement feel — coyote time, jump buffering, air control"
@@ -1768,8 +1818,8 @@
1768
1818
  "id": "skill/game-feel",
1769
1819
  "kind": "skill",
1770
1820
  "version": "1.0.2",
1771
- "content_hash": "3e3732502504b7f6c229cc39259be215c511b5477c4723f5e1cb00baa61fa8f4",
1772
- "summary": "Add juice: hit-flash, trauma-based camera shake, and audio ducking wired so one hit fires all three — for games that feel flat or lack impact.",
1821
+ "content_hash": "c46965ecb4593fb3dd86a1d770031bc40cd7e2c599f6d57d73c01f614537e9d9",
1822
+ "summary": "Add juice: hit-flash, trauma camera shake and audio ducking, one hit fires all three.",
1773
1823
  "use_when": [
1774
1824
  "a Summer game feels flat, lacks impact, needs juice or punch",
1775
1825
  "the user asks for hit feedback, screen shake, camera shake, or audio ducking"
@@ -1802,8 +1852,8 @@
1802
1852
  "id": "skill/gameskill",
1803
1853
  "kind": "skill",
1804
1854
  "version": "1.0.2",
1805
- "content_hash": "1ca30765c394269299b9cddb24e992ecd397aeb7b647cfb6ce3c493fac9fd630",
1806
- "summary": "Capture what a game-dev session just learned as a reusable skill (project, user or Summer library) so the next session starts smarter.",
1855
+ "content_hash": "02cfee643b367862f5dc9d8f14125796fe17944706ee6bfd5f5b436185da8f67",
1856
+ "summary": "Capture what a game-dev session learned as a reusable skill (project, user or Summer library) for next time.",
1807
1857
  "use_when": [
1808
1858
  "finishing a game-development session with learnings worth capturing as a reusable skill",
1809
1859
  "a session found a technique, workaround, or convention worth reusing across Summer sessions"
@@ -1830,8 +1880,8 @@
1830
1880
  "id": "skill/gdscript-patterns",
1831
1881
  "kind": "skill",
1832
1882
  "version": "1.0.3",
1833
- "content_hash": "5b8c24998b63021fd1dd9f0d6030a87d02506084eb4ced369fc3c018c6b2bac7",
1834
- "summary": "GDScript conventions — type hints, signals, exports, onready, lifecycle methods, get_node vs $NodePath, naming.",
1883
+ "content_hash": "20953fefe79c51cdeb651848b6e1f65beaff3b46a37e6ab8e12fd0789fc7f91f",
1884
+ "summary": "GDScript conventions: type hints, signals, exports, onready, lifecycle methods, node paths, naming.",
1835
1885
  "use_when": [
1836
1886
  "writing or refactoring GDScript — type hints, signals, exports, onready, lifecycle methods, naming conventions",
1837
1887
  "reviewing GDScript for idiomatic signals, exports, @onready usage, node references, and naming"
@@ -1858,8 +1908,8 @@
1858
1908
  "id": "skill/generate-motion",
1859
1909
  "kind": "skill",
1860
1910
  "version": "1.0.4",
1861
- "content_hash": "342ca77d9ff7982a2544d19ab0047abe5222a26aefdb39fd605180ba3ce9477e",
1862
- "summary": "Attach an animation clip to a rigged character from the curated Meshy motion library — idle, walk, run, attack — wired via AnimationPlayer.",
1911
+ "content_hash": "e05c637f6b9077429ee3b7fa5621aa37c26ec03f4241857d068b8318fd4e1e60",
1912
+ "summary": "Attach a library animation clip (idle, walk, run, attack) to a rigged character via AnimationPlayer.",
1863
1913
  "use_when": [
1864
1914
  "the user needs an animation clip on a rigged character — idle/walk/run/attack from the curated Meshy library",
1865
1915
  "a rigged character has no idle, walk, run, or attack animation yet"
@@ -1900,7 +1950,7 @@
1900
1950
  "id": "skill/godogen-visual-proof-game-generation",
1901
1951
  "kind": "skill",
1902
1952
  "version": "0.1.1",
1903
- "content_hash": "a4ab7a5cb7948dba0d26a3a5227d56b703de49f75f13b5ad30ec5dceee712ded",
1953
+ "content_hash": "cb7a78fb823404680440cab4a358cf33f133424e2d18120176b5c237ace56b92",
1904
1954
  "summary": "Godogen-style game generation with a visual QC loop — capture frames from the running game, self-verify against the brief, bounded fix rounds, proof clip.",
1905
1955
  "use_when": [
1906
1956
  "generate a whole small game from a short brief and prove it actually runs",
@@ -1939,8 +1989,8 @@
1939
1989
  "id": "skill/grow-analytics",
1940
1990
  "kind": "skill",
1941
1991
  "version": "1.0.0",
1942
- "content_hash": "202c5517866e6fe7cf6d15f8a89292175dbb07f67d8a2a9a56bcf25a932f1d5a",
1943
- "summary": "Read and analyse a creator's Summer Grow numbers: store page views, launches, play sessions, play time; compare windows, flag drops.",
1992
+ "content_hash": "6e4f85c2371263413b508a43cb303b27e3acbeeb96e0cadbde8908e1b44ebc76",
1993
+ "summary": "Read a creator's Summer Grow numbers (page views, launches, sessions, play time), compare windows.",
1944
1994
  "use_when": [
1945
1995
  "the user asks how their game is doing on Summer Games: views, launches, players, play time",
1946
1996
  "reading summer_grow_overview or summer_grow_analytics and turning the numbers into one next step",
@@ -1972,8 +2022,8 @@
1972
2022
  "id": "skill/headless-scripting",
1973
2023
  "kind": "skill",
1974
2024
  "version": "1.1.3",
1975
- "content_hash": "760000454f33f147e4c7a3fb6a13c836f062cd0274b635f52cb4524dcad112b8",
1976
- "summary": "Run a GDScript file against Summer Engine from the shell for operations no MCP tool exposes — navmesh baking, collision shapes, TileSets, re-imports.",
2025
+ "content_hash": "57fe6d546aa458deeb7f617eae5aea035addf34960cd169b66242ae887cadb2e",
2026
+ "summary": "Run a GDScript file against Summer Engine from the shell for what no MCP tool does: navmesh, TileSets.",
1977
2027
  "use_when": [
1978
2028
  "a Summer project needs an operation no MCP tool exposes — baking a navmesh, generating collision shapes, authoring an Animation, building a TileSet, re-importing assets",
1979
2029
  "a plan involves 'run it headless and screenshot it' (which does not work — this skill explains why)"
@@ -2006,8 +2056,8 @@
2006
2056
  "id": "skill/in-game-purchases",
2007
2057
  "kind": "skill",
2008
2058
  "version": "1.0.0",
2009
- "content_hash": "9424c160b59a7dd583a7e52d62e334d6d0cfc1f46278221436d327a7326df3a2",
2010
- "summary": "Sell items for Sparks in a game shop via the Summer purchase sheet: checkout, results, not enough Sparks, inventory unlocks, authority grants, store policy.",
2059
+ "content_hash": "60d05c3804061c86f69b7ce8e3b0932180a28dda07be2b58a5982435473d5936",
2060
+ "summary": "Sell items for Sparks via the Summer purchase sheet: checkout, not enough Sparks, unlocks, grants.",
2011
2061
  "use_when": [
2012
2062
  "adding a shop, buy button or paid item to a Summer game and wiring request_checkout",
2013
2063
  "the player does not have enough Sparks (checkout rejected with insufficient_funds) and the game should tell them how to buy more Sparks",
@@ -2042,8 +2092,8 @@
2042
2092
  "id": "skill/instantiate-asset-pack",
2043
2093
  "kind": "skill",
2044
2094
  "version": "1.0.3",
2045
- "content_hash": "3c8993a111e421c12bef81022160629235f9c8ee7530d6697e7f28464ee6085a",
2046
- "summary": "Import a whole create-asset-sheet pack into the scene: groups composites, sorts paint order, emits Sprite2D/Node2D/NinePatchRect ops to lay it out.",
2095
+ "content_hash": "d1d1d115181af5edb0deb6fbbc85faa2c946b31cc921f2bf471b28994b0a34da",
2096
+ "summary": "Lay out a whole create-asset-sheet pack in the scene: composites, paint order, Sprite2D and NinePatch.",
2047
2097
  "use_when": [
2048
2098
  "importing or spawning an entire asset pack (multi-slice ArtAsset from create-asset-sheet) into the current scene",
2049
2099
  "laying out a generated tile sheet, UI kit, or biome pack as placed Sprite2D and NinePatchRect nodes in one pass"
@@ -2106,7 +2156,7 @@
2106
2156
  "id": "skill/lumera-single-image-scene-reconstruction",
2107
2157
  "kind": "skill",
2108
2158
  "version": "0.1.1",
2109
- "content_hash": "0aaaaf86253645a5b4d2c40b3cdbb2af41ac225218a3fcee18f1d62d2bde345f",
2159
+ "content_hash": "2ee6894c02b7a23a58ac12fc81134f399bffa6534719f8ba04d58a747c293d04",
2110
2160
  "summary": "Lumera-style single image to editable 3D scene — VLM-parsed object boxes and parametric lights, per-object meshes, HDR probe, .tscn assembly, refinement loop.",
2111
2161
  "use_when": [
2112
2162
  "turn this concept art or screenshot into an editable 3D scene with separate objects and lights",
@@ -2146,8 +2196,8 @@
2146
2196
  "id": "skill/make-game",
2147
2197
  "kind": "skill",
2148
2198
  "version": "1.1.0",
2149
- "content_hash": "6b254b93c236527ecf7d7a3128aa9daa3fe264e533a011ce7cb829df4fd90a32",
2150
- "summary": "Orchestration spine for 'make me a game': brainstorm, plan, scaffold, mechanics, art, audio, polish, verify, ship — delegates to specialist skills.",
2199
+ "content_hash": "1d1ab7c2061e51c8ab293a75930ba46acc1f16af022bfac7f12b7f3ac2c40cdf",
2200
+ "summary": "Orchestrate 'make me a game': brainstorm, plan, scaffold, mechanics, art, audio, polish, verify, ship.",
2151
2201
  "use_when": [
2152
2202
  "the user says 'make me a game', 'build me a game', 'I want to make a [genre] game', or 'let's build something' — running the full game-dev pipeline",
2153
2203
  "the user wants a complete playable game end to end, from brainstorm through shipping",
@@ -2194,8 +2244,8 @@
2194
2244
  "id": "skill/multiplayer",
2195
2245
  "kind": "skill",
2196
2246
  "version": "1.0.0",
2197
- "content_hash": "06771fb6465e2ed96bb03900d98e1b53bb79e36cda4f5540d8371fc4308274d5",
2198
- "summary": "Start here for Summer multiplayer: how the authority, clients, Worlds and Sessions fit, and which skill comes next.",
2247
+ "content_hash": "2a2374cfdfc30eebbf489703a2f53347f294b0eedf374588b5f0b38fd80de316",
2248
+ "summary": "Start here for Summer multiplayer: how authority, clients, Worlds and Sessions fit, and what comes next.",
2199
2249
  "use_when": [
2200
2250
  "the user wants multiplayer, co-op, PvP, online play over the internet, or to play with friends in a Summer game",
2201
2251
  "the user asks for peer-to-peer, a player-hosted server, host migration, join-by-IP or a lobby",
@@ -2237,8 +2287,8 @@
2237
2287
  "id": "skill/multiplayer-movement",
2238
2288
  "kind": "skill",
2239
2289
  "version": "1.0.0",
2240
- "content_hash": "b48c1aa09e885071d5007ecd8863a38f9bd467fa216314bac329a6bbc8df6e68",
2241
- "summary": "Client-side movement in Summer multiplayer: owners move instantly, others glide, the authority checks each pose.",
2290
+ "content_hash": "44297cb8f8bd3f00d76a436f1db4c0f0433422c460deadd5c3a0ae9952de5ca4",
2291
+ "summary": "Movement in Summer multiplayer: owners move instantly, others glide, the authority checks each pose.",
2242
2292
  "use_when": [
2243
2293
  "moving players in a Summer multiplayer game: each player's own character, other players drawn smoothly",
2244
2294
  "remote players stutter, jitter, teleport or rubberband in a Summer multiplayer game",
@@ -2276,8 +2326,8 @@
2276
2326
  "id": "skill/multiplayer-project",
2277
2327
  "kind": "skill",
2278
2328
  "version": "1.0.0",
2279
- "content_hash": "c730c94e08e9807ad9404f4104eb1ad389c1a73e47a804929b31db29c8497b17",
2280
- "summary": "Set up a Summer multiplayer project: both entry scenes, World and queue files, joining, and a first Local Play run.",
2329
+ "content_hash": "fcced65092a535c3c0f0e594bef62eb232f2835077b2d3be51feb616f3c35016",
2330
+ "summary": "Set up a Summer multiplayer project: entry scenes, World and queue files, joining, a first Local Play.",
2281
2331
  "use_when": [
2282
2332
  "making a Summer game playable online or co-op: the first multiplayer setup",
2283
2333
  "adding multiplayer to a Summer game: the client and authority scenes, summer.build.json, world.json and joining a queue",
@@ -2320,9 +2370,9 @@
2320
2370
  {
2321
2371
  "id": "skill/multiplayer-publish",
2322
2372
  "kind": "skill",
2323
- "version": "1.0.0",
2324
- "content_hash": "e0624b497dc1e45bbe9e529817502a4e05c829189402391d0882fc0b007e8766",
2325
- "summary": "Ship a hosted Summer multiplayer game: the summer.games bundle, server preset, pre-upload checks, and a new Build.",
2373
+ "version": "1.0.1",
2374
+ "content_hash": "247570d73a5da158b2a190fc00026940ad26bcd2b27d1091159b311b98cda1e5",
2375
+ "summary": "Ship a hosted Summer multiplayer game: the bundle, server preset, pre-upload checks, a new Build.",
2326
2376
  "use_when": [
2327
2377
  "publishing a hosted Summer multiplayer game online so other players can join it",
2328
2378
  "making the summer.games bundle of a hosted game: client.pck, server.pck and the Linux server preset",
@@ -2352,15 +2402,15 @@
2352
2402
  "skill/release-readiness"
2353
2403
  ]
2354
2404
  },
2355
- "status": "preview",
2405
+ "status": "stable",
2356
2406
  "recommended": false
2357
2407
  },
2358
2408
  {
2359
2409
  "id": "skill/multiplayer-state",
2360
2410
  "kind": "skill",
2361
2411
  "version": "1.0.0",
2362
- "content_hash": "38e79fe70609234ad717f00685b6165e2dd41ee860ce0b721a07ac2f56ad80f4",
2363
- "summary": "Authority-owned game state in Summer multiplayer: shared and private State groups, validated Commands, and Events.",
2412
+ "content_hash": "8b87bf9bf688ba13d1f1de42fb0f1c81c8741ef0a6450dea7b630962746c4771",
2413
+ "summary": "Authority-owned state in Summer multiplayer: shared and private State groups, Commands, Events.",
2364
2414
  "use_when": [
2365
2415
  "score, health, doors, rounds, inventories or wallets in a Summer multiplayer game, and who owns them",
2366
2416
  "players need to collect, buy, use, open or trade things and the authority must validate it",
@@ -2403,8 +2453,8 @@
2403
2453
  "id": "skill/multiplayer-testing",
2404
2454
  "kind": "skill",
2405
2455
  "version": "1.0.0",
2406
- "content_hash": "115c160d7e42a95589bac14a572811b0c9c3b26b37c5386b6eb647f2889ef162",
2407
- "summary": "Test a Summer multiplayer game with Local Play: several players, a bad network, bots, and what a passing run shows.",
2456
+ "content_hash": "0fe3142718861eb4a4fdc55e2aad2e10486acfdc5bf74afea369c97da1b81bc0",
2457
+ "summary": "Test a Summer multiplayer game with Local Play: several players, bad network, bots, a passing run.",
2408
2458
  "use_when": [
2409
2459
  "running or testing a Summer multiplayer game locally with several players (Local Play)",
2410
2460
  "testing multiplayer under latency, jitter or packet loss, or with bots",
@@ -2452,8 +2502,8 @@
2452
2502
  "id": "skill/music-track",
2453
2503
  "kind": "skill",
2454
2504
  "version": "1.0.2",
2455
- "content_hash": "f31b8aae49f483c6d1da9b15fc084fae19a41d1f5e45b770c037a619a65de738",
2456
- "summary": "Generate a looped or cinematic music track — loops authored at >=30s with a marked loop point, cinematic tracks at >=60s linear.",
2505
+ "content_hash": "e7edc2e73b261e2d0d0c0f91eebf49b60cec4946fbc6113229cddbd3ccc7cf50",
2506
+ "summary": "Generate a music track: game loops of 30s or more with a loop point, or linear cinematic cues.",
2457
2507
  "use_when": [
2458
2508
  "generating a looped or cinematic music track — main theme, boss music, title screen, exploration loop, combat track",
2459
2509
  "a game has no music yet or needs a new track for a level, a cutscene, or the credits"
@@ -2487,8 +2537,8 @@
2487
2537
  "id": "skill/navigate-summer",
2488
2538
  "kind": "skill",
2489
2539
  "version": "1.0.0",
2490
- "content_hash": "261e7a6fc82faab880e61723cf39459596a7edaeabb90059c43c1d97c2fca079",
2491
- "summary": "When to open a Summer web page or editor surface FOR the user (billing, their games, the scene just built) versus acting through the API, using summer_open.",
2540
+ "content_hash": "144599c6e549910c66975ef6c250d207282f4f57a333c5863841c691ec12c413",
2541
+ "summary": "Open a Summer web page or editor surface for the user (billing, their games, a scene) with studio.open.",
2492
2542
  "use_when": [
2493
2543
  "the user asks to see, check, or decide something — \"show me my billing\", \"where do I change my plan\", \"open my games\", \"let me look at the scene\", \"take me to the MCP guide for Cursor\"",
2494
2544
  "deciding whether to open a surface for the user or to do the work through Summer tools",
@@ -2530,8 +2580,8 @@
2530
2580
  "id": "skill/new-project",
2531
2581
  "kind": "skill",
2532
2582
  "version": "1.0.4",
2533
- "content_hash": "fa870e1a0f8f592465fbdc6d951335f71dd59857ece4279cec50f9e88af0a3c2",
2534
- "summary": "Create a fresh blank Summer Engine project — asks one question (project name) and runs summer create empty.",
2583
+ "content_hash": "747e6c3d44ee75f48a74a18aab807f3cec14290a3ea1b3200467a3dea7460448",
2584
+ "summary": "Create a blank Summer Engine project: ask for the project name and run summer create empty.",
2535
2585
  "use_when": [
2536
2586
  "the user wants a fresh blank Summer Engine project — from scratch, blank canvas",
2537
2587
  "starting a Summer Engine project with no template, only a name, ready for an empty main scene"
@@ -2563,8 +2613,8 @@
2563
2613
  "id": "skill/organic-model",
2564
2614
  "kind": "skill",
2565
2615
  "version": "1.0.3",
2566
- "content_hash": "1ff008d9c308835e3b72ad7956d5614b9f655dec780860b36addaaf5141dea24",
2567
- "summary": "Generate organic 3D shapes — trees, rocks, mushrooms, coral, plants, vines, crystals — where AI artifacts read as natural irregularity.",
2616
+ "content_hash": "72ce63607e7fce253f8feb40e223fb11155854478f0c886dd57376772bb5beed",
2617
+ "summary": "Generate organic 3D shapes (trees, rocks, mushrooms, plants, crystals) where irregularity looks natural.",
2568
2618
  "use_when": [
2569
2619
  "generating organic shapes — trees, rocks, mushrooms, coral, bushes, alien plants, vines, crystals, fruit, bones",
2570
2620
  "a level needs vegetation, rocks, or other natural shapes where irregularity reads as realism"
@@ -2602,8 +2652,8 @@
2602
2652
  "id": "skill/pixel-art",
2603
2653
  "kind": "skill",
2604
2654
  "version": "1.0.4",
2605
- "content_hash": "c61e867cba2cbeebf5d3de182f7813a72c14f3fff442c322c4c13ab31b252ed7",
2606
- "summary": "Generate pixel-art assets — sprites, items, tiles, portraits — at a specific resolution with pixel-perfect grid, limited palette, retro feel.",
2655
+ "content_hash": "b71ddf36c82d4ccc83e1882c335615a23d8348e984cab169f3eeb63c35836dd6",
2656
+ "summary": "Generate pixel-art sprites, items, tiles and portraits at a set resolution with a limited palette.",
2607
2657
  "use_when": [
2608
2658
  "generating pixel-art assets — sprites, items, tiles, portraits — in a pixel style at a specific resolution (32x32, 64x64, 128x128)",
2609
2659
  "a retro or low-resolution 2D game needs sprites, tiles, or portraits on a fixed grid with a limited palette"
@@ -2640,8 +2690,8 @@
2640
2690
  "id": "skill/play",
2641
2691
  "kind": "skill",
2642
2692
  "version": "1.0.2",
2643
- "content_hash": "7fd83f75378bbcb605d57aeded546f63ed520b3e2c991da8bc088c71b2d3fdbc",
2644
- "summary": "Run the project in Summer Engine, wait briefly, then report what's happening — clean run, errors, or warnings.",
2693
+ "content_hash": "b5d5927156ac2c496f49330ed90f0bf2c286722dfb4480a9b329764244c77d38",
2694
+ "summary": "Run the project in Summer Engine, wait briefly, then report a clean run, errors or warnings.",
2645
2695
  "use_when": [
2646
2696
  "the user says 'play', 'run it', 'test it', 'let me see it', or 'start the game'",
2647
2697
  "checking that the project still starts and runs cleanly right after a change"
@@ -2673,8 +2723,8 @@
2673
2723
  "id": "skill/playtesting-a-feature",
2674
2724
  "kind": "skill",
2675
2725
  "version": "1.1.2",
2676
- "content_hash": "396ce66210c5199c89ba004a255cb8a0a2d05db73a45a73bfa922690ae777d67",
2677
- "summary": "Before claiming a gameplay feature done: actually run the game and walk through the feature. Static diagnostics and type checks do not count.",
2726
+ "content_hash": "6c43ee8e7f6f9fbc8d94dccc7dcf4c8cba757db556a24ab138ef4cd71214e07d",
2727
+ "summary": "Before calling a gameplay feature done, run the game and walk through it. Static checks do not count.",
2678
2728
  "use_when": [
2679
2729
  "about to claim a gameplay feature is done, shipped, or working — requires actually running the game and walking through the feature first",
2680
2730
  "a feature passes static diagnostics but nobody has actually run the game and exercised it yet",
@@ -2712,8 +2762,8 @@
2712
2762
  "id": "skill/procedural-animation",
2713
2763
  "kind": "skill",
2714
2764
  "version": "1.0.4",
2715
- "content_hash": "ad2d12af6589b92a34e7ff64c67b2d6e15f9323f89f8468e54e551ef6a4b3ffa",
2716
- "summary": "Runtime bone modification on top of clips — head look-at, foot IK, hand-grabs-prop, additive lean, recoil. Code-and-modifier patterns, not generation.",
2765
+ "content_hash": "d639e83ef04bb35207fef037fd804229f28215964e44e62bb8eff2ed2ec8ab8b",
2766
+ "summary": "Runtime bone changes on top of clips: head look-at, foot IK, hand grabs a prop, lean, recoil.",
2717
2767
  "use_when": [
2718
2768
  "the user needs runtime-driven bone modification on top of clips — head look-at, foot IK on uneven ground, additive lean, hit recoil, ragdoll",
2719
2769
  "the character's feet float above or sink into stairs and slopes (foot placement)"
@@ -2752,8 +2802,8 @@
2752
2802
  "id": "skill/prop-model",
2753
2803
  "kind": "skill",
2754
2804
  "version": "1.0.3",
2755
- "content_hash": "dc899d46afde43f3a8df3fa78de1c87b27444f9ab482bf9b798a42e83272435d",
2756
- "summary": "Generate a single static 3D prop — sword, barrel, chest, lantern, throne, statue — one isolated object, no rigging, wired as a MeshInstance3D.",
2805
+ "content_hash": "3829e436b9591e9bbfe464d40119d9965840e3926cf3bbd1d9f7d05680588ff7",
2806
+ "summary": "Generate one static 3D prop (sword, barrel, chest, lantern, statue): one object, no rig, a MeshInstance3D.",
2757
2807
  "use_when": [
2758
2808
  "generating a single static 3D prop — sword, barrel, chest, lantern, throne, statue, crate, key, potion, banner",
2759
2809
  "a scene needs one static object — furniture, weapon, container, decoration — as a MeshInstance3D without rigging"
@@ -2790,7 +2840,7 @@
2790
2840
  "id": "skill/psx-retro-rendering",
2791
2841
  "kind": "skill",
2792
2842
  "version": "0.1.1",
2793
- "content_hash": "35ee63024c9a795005f872d97cc28d30de40956bf49502369ab7d8b111c26ec3",
2843
+ "content_hash": "0c3ed03806961d6dfdcd9f3d541bb260c85500262b1408712d068e4844c2bc55",
2794
2844
  "summary": "PlayStation 1 rendering in Summer Engine — low-res output, RGB5 and exact dither, affine textures, vertex snapping, blend modes, fog; limits named.",
2795
2845
  "use_when": [
2796
2846
  "make my game render like a PlayStation 1 game, with texture warping, vertex wobble, and dithering",
@@ -2828,12 +2878,12 @@
2828
2878
  "id": "skill/publish-your-game",
2829
2879
  "kind": "skill",
2830
2880
  "version": "1.0.0",
2831
- "content_hash": "c2ed78b67c43fbcea5792ec31b97daff0ded3e0fe63e8d676ecdc8da7527de4d",
2832
- "summary": "Publish a Summer game on Summer Games through MCP: store page, art, build upload, submit, and one approval link for the owner.",
2881
+ "content_hash": "16c397ca30880eeb78222eae48951a7438702842f0947485a98df0dc61290b1d",
2882
+ "summary": "Publish a game on Summer Games through MCP: store page, art, build upload, submit, owner approval link.",
2833
2883
  "use_when": [
2834
2884
  "the user says 'publish my game', 'put it on summer.games', 'launch it on the store' or 'submit it for review'",
2835
- "taking a built Summer game to a submitted store page: listing text, art, build upload, summer_store_submit and the owner's approval link",
2836
- "an agent publishes for the owner end to end and needs the order of the summer_store_* and summer_build_* tools"
2885
+ "taking a built Summer game to a submitted store page: listing text, art, build upload, store.publish and the owner's approval link",
2886
+ "an agent publishes for the owner end to end and needs the order of the store.* operations"
2837
2887
  ],
2838
2888
  "facets": {
2839
2889
  "lifecycle": [
@@ -2863,7 +2913,7 @@
2863
2913
  "id": "skill/realtime-wet-surfaces",
2864
2914
  "kind": "skill",
2865
2915
  "version": "0.1.1",
2866
- "content_hash": "975781c2da63e650f89125455559847347e56a2741547db7cd77db0143536db4",
2916
+ "content_hash": "a6027d8277919a5e19571101dd451aac8018e69faf2acced6ac97cb943084c0d",
2867
2917
  "summary": "Real-time wetness on existing materials without losing their values — value-copying wet shader, geometry-driven wet mask, instance-uniform wet amount.",
2868
2918
  "use_when": [
2869
2919
  "make surfaces look wet when it rains and dry off afterwards",
@@ -2900,8 +2950,8 @@
2900
2950
  "id": "skill/release-readiness",
2901
2951
  "kind": "skill",
2902
2952
  "version": "1.0.0",
2903
- "content_hash": "229b468ac0f85c84e55c5cb952dd1e3fcbc8e8c8d1ebe7aca1919199d5b6090e",
2904
- "summary": "Before releasing a Summer game version, prove players can play it: server scene, online join, progress, Game ID, released Summer, packed files, app version.",
2953
+ "content_hash": "c195bfe252ad5a34bebc5f0bf0b1a932afe59411c279e1dc53c58630ecb07395",
2954
+ "summary": "Before releasing a Summer game version, prove players can play it: server, online join, progress, files.",
2905
2955
  "use_when": [
2906
2956
  "before uploading, promoting or releasing a new version to players: is it ready to release",
2907
2957
  "every online join fails with world_start_timeout, or the hosted server's log is empty, while Local Play works",
@@ -2951,8 +3001,8 @@
2951
3001
  "id": "skill/remote-deploy",
2952
3002
  "kind": "skill",
2953
3003
  "version": "1.0.2",
2954
- "content_hash": "9691ff133681cdab3d1f662978c3d92bd55b4a256a27f23eadf997f6f6b183cb",
2955
- "summary": "Run or test the game on a real device — phone, tablet, another computer — via the Remote Deploy button, runnable export presets, and on-device debugging.",
3004
+ "content_hash": "d04396c8e986d1033b5afafbc12eac3ac1f7383e9cfd3115892229edbaa6f92b",
3005
+ "summary": "Run or test the game on a real phone, tablet or computer with Remote Deploy and on-device debugging.",
2956
3006
  "use_when": [
2957
3007
  "the user wants to run or test the game on a real target instead of the editor — a phone, tablet, or another computer",
2958
3008
  "the Remote Deploy button is greyed out and the user wants to know why"
@@ -2979,8 +3029,8 @@
2979
3029
  "id": "skill/retarget",
2980
3030
  "kind": "skill",
2981
3031
  "version": "1.0.3",
2982
- "content_hash": "381b0916a73b07ad92b60afa318b9ca80c60f42c41cf76f3490900f29ad1086d",
2983
- "summary": "Apply existing animation clips from one rigged character to a different rigged character — same library, multiple models, no regeneration.",
3032
+ "content_hash": "337f3f0dbe2ed59dab474c2a21966aa5e6610c38818e7438ca6afc70b8be1d23",
3033
+ "summary": "Apply animation clips from one rigged character to another: one clip library, many models.",
2984
3034
  "use_when": [
2985
3035
  "applying existing animation clips from one rigged character to a different rigged character — sharing one animation library across models",
2986
3036
  "the same clips must play on several differently proportioned rigs without regenerating them"
@@ -3019,8 +3069,8 @@
3019
3069
  "id": "skill/running-in-the-cloud",
3020
3070
  "kind": "skill",
3021
3071
  "version": "1.0.3",
3022
- "content_hash": "91b995139cbea3766099c8662ce3c122e46658b11ba216dd09dcacc2b842b13b",
3023
- "summary": "Run Summer Engine on a Linux box with no display — install it, launch headless, know when xvfb + software GL are needed, authenticate without a browser.",
3072
+ "content_hash": "f5d2434aa841e4c5f62e320ff3fd11ce3c759a045e6b1717ce027c02a7f503a5",
3073
+ "summary": "Run Summer Engine on a Linux box with no display: install, launch headless, xvfb, sign in without a browser.",
3024
3074
  "use_when": [
3025
3075
  "Summer Engine runs in a cloud container, CI job, remote agent sandbox, or any Linux machine with no desktop",
3026
3076
  "installing the engine on Linux, or a tool reports \"engine not running\" in an environment that has no display",
@@ -3056,8 +3106,8 @@
3056
3106
  "id": "skill/save-load",
3057
3107
  "kind": "skill",
3058
3108
  "version": "1.0.0",
3059
- "content_hash": "2435b5bfa043c8615accb4eec56c674f57857eec7948a5249e7c51c964d2497f",
3060
- "summary": "Persist game state in Summer Engine: user:// paths, JSON progress vs ConfigFile settings, a versioned save schema with migration, autosave hooks.",
3109
+ "content_hash": "5fe9e7e42d149c57509d0d924b8a4120c112aa0ca30f63bc95b144cb1091d5d4",
3110
+ "summary": "Save and load game state: user:// paths, JSON progress vs ConfigFile settings, versioned saves, autosave.",
3061
3111
  "use_when": [
3062
3112
  "persisting progress, settings, high scores, checkpoints, or save slots",
3063
3113
  "deciding between JSON and ConfigFile for a save or settings file",
@@ -3092,8 +3142,8 @@
3092
3142
  "id": "skill/scene-composition",
3093
3143
  "kind": "skill",
3094
3144
  "version": "1.0.3",
3095
- "content_hash": "d43d2bbc348949a445008e967aa92845b33976429deba817dac26f7e4c2db0b3",
3096
- "summary": "Scene structure conventions — node hierarchy, when to extract sub-scenes, reusable prefab patterns, and instance-versus-add-node decisions.",
3145
+ "content_hash": "bd2220bf58140f028bc757485f9394ae77042bd0e686d4fb11ee7d03db433982",
3146
+ "summary": "Scene structure: node hierarchy, when to extract sub-scenes, reusable prefabs, instance vs add node.",
3097
3147
  "use_when": [
3098
3148
  "building or organizing Summer Engine scenes: node hierarchy conventions, sub-scene extraction, prefab patterns, PackedScene decisions",
3099
3149
  "deciding whether to extract a sub-scene, instance a prefab, or add nodes inline as a scene grows"
@@ -3126,8 +3176,8 @@
3126
3176
  "id": "skill/scene-hierarchy-design",
3127
3177
  "kind": "skill",
3128
3178
  "version": "0.1.1",
3129
- "content_hash": "288acf3a2c2e66562a0cc5ce24e81277640951a6ad0766de1516a418889f737d",
3130
- "summary": "Structure Summer Engine scenes by access pattern — asset vs live hierarchies, wrapper nodes per operation, sub-scenes for reuse, path-agnostic logic.",
3179
+ "content_hash": "15e7ef93d879c13aae8e06464beade897f148374eb006f99c440553e9d45255b",
3180
+ "summary": "Structure scenes by access pattern: asset vs live hierarchies, wrapper nodes, sub-scenes, path-agnostic code.",
3131
3181
  "use_when": [
3132
3182
  "how should I structure the node hierarchy for this level or character",
3133
3183
  "reorganize a scene that grew ad hoc — long node chains, duplicated clusters, hard-to-delete groups",
@@ -3162,9 +3212,9 @@
3162
3212
  {
3163
3213
  "id": "skill/scene-scripting",
3164
3214
  "kind": "skill",
3165
- "version": "1.1.1",
3166
- "content_hash": "f1aa667b0e0547b3fd3747070b14b26c5482dcd52aab9e8084b3a53b9dc52870",
3167
- "summary": "One GDScript in the live editor (summer_run_script) builds scenes, 2D levels, HUDs and gameplay wiring instead of CRUD chains; verify with diff + screenshot.",
3215
+ "version": "1.2.0",
3216
+ "content_hash": "2199eb7e7bafb79b35df51476098e2a920588496a0418f18fdcf8acabfc361f3",
3217
+ "summary": "Build scenes, levels, HUDs and wiring with one editor GDScript (summer_run_script) instead of call chains.",
3168
3218
  "use_when": [
3169
3219
  "a scene change needs 3+ related ops or any computed placement — scattering, grids, rings, procedural meshes, geometry helpers, terrain, lighting rigs, keyframe animation, shader FX",
3170
3220
  "a 2D level (tilemap paint, bodies, camera limits, parallax), an animated sprite, a HUD or Control tree, a persisted signal connection, an attached script, a prefab, input actions, an autoload, or the main scene should be built in one script",
@@ -3218,15 +3268,15 @@
3218
3268
  "template/2d-platformer"
3219
3269
  ]
3220
3270
  },
3221
- "status": "preview",
3271
+ "status": "stable",
3222
3272
  "recommended": true
3223
3273
  },
3224
3274
  {
3225
3275
  "id": "skill/scene-to-level",
3226
3276
  "kind": "skill",
3227
3277
  "version": "1.0.3",
3228
- "content_hash": "3ab5070dececd1052e7d11c08cf7be47df5cc4abf73c06142c92cc56ca53cb17",
3229
- "summary": "Go from a scene reference image or concept art to a playable scene — orchestrates concept, asset pack, terrain, composition, and scene assembly.",
3278
+ "content_hash": "9bc09ebddf9499870c1c749cf809ec50ad262e78dfd77f82a9849d7186203cf9",
3279
+ "summary": "Turn a reference image or concept art into a playable scene: concept, asset pack, terrain, assembly.",
3230
3280
  "use_when": [
3231
3281
  "going from a scene reference image or concept art to a playable Summer Engine scene populated with the right assets and terrain",
3232
3282
  "the user shares concept art or a reference screenshot and wants that location built as a playable scene"
@@ -3266,7 +3316,7 @@
3266
3316
  "id": "skill/skill-create",
3267
3317
  "kind": "skill",
3268
3318
  "version": "1.0.3",
3269
- "content_hash": "1b33e1b26d2611d3402270584da4c56f9ba15abe694b9941d4016aad3995d341",
3319
+ "content_hash": "80588283f761fc20a46ee6129d42c204d33ef3276c73ec7d7649fac63ca5a214",
3270
3320
  "summary": "Bootstrap a new Summer library skill (library/skills/<slug>/ with resource.yaml and SKILL.md), frontmatter, and stub sections.",
3271
3321
  "use_when": [
3272
3322
  "a contributor wants to add a new skill to the Summer library",
@@ -3299,7 +3349,7 @@
3299
3349
  "id": "skill/skill-improve",
3300
3350
  "kind": "skill",
3301
3351
  "version": "1.0.3",
3302
- "content_hash": "b650b10657506ffad2b47915da66dd68406c4aa2dc2d372d9a2eda9197daefe5",
3352
+ "content_hash": "83ab327f35e16952df167e8b1b51dd924e26c199aa3dec2e4efc5334d12a0a44",
3303
3353
  "summary": "Upgrade an underperforming Summer skill — run it against a behavioral spec with and without changes via a parallel-eval harness; ship the winner.",
3304
3354
  "use_when": [
3305
3355
  "a contributor wants to upgrade a Summer skill that is underperforming or to fix a regression",
@@ -3332,7 +3382,7 @@
3332
3382
  "id": "skill/skill-test",
3333
3383
  "kind": "skill",
3334
3384
  "version": "1.0.4",
3335
- "content_hash": "178c147318078a7278242ee68b0e3e95c1e5884758bbb0c96f2e47fd75dbe53f",
3385
+ "content_hash": "c99adb195eb9f44d1e913520b93a95079f00e466ed7e062bc8082de96e90d3b5",
3336
3386
  "summary": "Lint a Summer skill before commit, audit the whole library, or check a behavioral spec assertion — static structural rules plus behavioral specs.",
3337
3387
  "use_when": [
3338
3388
  "a contributor wants to lint a Summer skill before commit, audit the whole library, or check a behavioral spec assertion",
@@ -3366,7 +3416,7 @@
3366
3416
  "id": "skill/skintokens-auto-rigging",
3367
3417
  "kind": "skill",
3368
3418
  "version": "0.1.1",
3369
- "content_hash": "2a9a8cf21dfa35fefc735496ad0dd96f07115d2f23c2e7642f8a1f681096e610",
3419
+ "content_hash": "ae61c1f76bed428a73412e25b9fcc0795b59b1129236c8dfa7abbc93acb9df03",
3370
3420
  "summary": "Offline auto-rigging with skin-tokens.cpp (GGML SkinTokens/TokenRig port) — skeleton and skin weights from a static GLB mesh on CPU/Vulkan, into Summer Engine.",
3371
3421
  "use_when": [
3372
3422
  "auto-rig this static GLB mesh so I can animate it",
@@ -3405,8 +3455,8 @@
3405
3455
  "id": "skill/skybox-panorama",
3406
3456
  "kind": "skill",
3407
3457
  "version": "1.0.3",
3408
- "content_hash": "2fa5eb148d8907b64368769738de5dfb2baed0165eb1a0c3ee761a8594092cda",
3409
- "summary": "Generate a 360-degree equirectangular sky panorama and wire it as a PanoramaSkyMaterial Sky resource on WorldEnvironment in a 3D scene.",
3458
+ "content_hash": "f5a55b1c508a58938615f686b4c843d008854a48562849fbff4aaee5453f2694",
3459
+ "summary": "Generate a 360-degree sky panorama and wire it as a PanoramaSkyMaterial Sky resource on WorldEnvironment.",
3410
3460
  "use_when": [
3411
3461
  "generating a 360-degree panoramic sky image for use as a Sky resource (PanoramaSkyMaterial) in a 3D scene",
3412
3462
  "a 3D scene has a flat or default sky and needs a 360-degree backdrop matching the art direction"
@@ -3440,8 +3490,8 @@
3440
3490
  "id": "skill/sound-effect",
3441
3491
  "kind": "skill",
3442
3492
  "version": "1.1.0",
3443
- "content_hash": "a02073249416a329b4d40848af7d5ba7df9b294d9bf7e9a4d856a6af846f2aad",
3444
- "summary": "Make SFX one-shots and timed sequences (swings, hits, whooshes, reloads, UI) - offer three model versions to pick from, then wire them as AudioStreamPlayers.",
3493
+ "content_hash": "ed90fdb591d7e1d0fb8fac6f278357e6342ac6de9d0f72f8cc130acbd63a1af7",
3494
+ "summary": "Make sound effects (swings, hits, whooshes, reloads, UI): three versions to pick from, then wire them.",
3445
3495
  "use_when": [
3446
3496
  "generating short SFX one-shots — footsteps, weapon swings, UI clicks, hit impacts, environmental cues",
3447
3497
  "an action, impact, or UI interaction is silent and needs a short one-shot sound wired to it",
@@ -3481,8 +3531,8 @@
3481
3531
  "id": "skill/spatial-placement",
3482
3532
  "kind": "skill",
3483
3533
  "version": "1.1.0",
3484
- "content_hash": "f7bb98ebb5ebfdf35a17f3bda9c652a7156257b3cdb9dd4c354578b330b9f6c1",
3485
- "summary": "Place 3D objects and modular kit pieces from measured geometry — inspect, place, starcast, measure, correct; floor, wall, facade, pipe and alcove recipes.",
3534
+ "content_hash": "1c0735c6145bd97e95163bd65b460e9780f9e57954366094956f3461a73cc9d2",
3535
+ "summary": "Place 3D objects and modular kit pieces from measured geometry: floors, walls, facades, pipes, alcoves.",
3486
3536
  "use_when": [
3487
3537
  "positioning a prop, character, collider, or platform so it sits flush, avoids overlap, or keeps clearance",
3488
3538
  "placing something against a wall, inside an alcove, or on a shelf and needing to know which side is blocked and by how much",
@@ -3541,8 +3591,8 @@
3541
3591
  "id": "skill/sprite-sheet",
3542
3592
  "kind": "skill",
3543
3593
  "version": "1.0.4",
3544
- "content_hash": "bb135a8fc2e5a3044ec68582696c7ea956339daa7fa3ffedb10c3e7f67baff8c",
3545
- "summary": "Generate animated 2D character sprites laid out as a sprite sheet — walk cycle, attack, idle, death — wired into AnimatedSprite2D / SpriteFrames.",
3594
+ "content_hash": "19345402d1981afb09cd48ea45bd52a19198f7dc197281fb5df90a3012c3d6ff",
3595
+ "summary": "Generate animated 2D character sprite sheets (walk, attack, idle, death) for AnimatedSprite2D.",
3546
3596
  "use_when": [
3547
3597
  "generating animated 2D character sprites laid out as a grid of frames — walk cycle, attack frames, idle bob, death sequence",
3548
3598
  "a 2D sprite needs its frames laid out as one grid image for AnimatedSprite2D or SpriteFrames"
@@ -3580,11 +3630,11 @@
3580
3630
  "id": "skill/store-art",
3581
3631
  "kind": "skill",
3582
3632
  "version": "1.0.0",
3583
- "content_hash": "70d6b7f61395a329958bdd0fb6abfaf8c829d6b287ef115d52db4b16184f42c3",
3584
- "summary": "Make Summer Games store art per slot and flow: key art, covers, icons, screenshots, trailer: size, shape, text rules, fallbacks.",
3633
+ "content_hash": "8a42f228c9b4c8974e2609bce57e6bc425f6b9fea1d12cd28eceb7f6f4b08efa",
3634
+ "summary": "Make Summer Games store art per slot: key art, covers, icons, screenshots, trailer, size and text rules.",
3585
3635
  "use_when": [
3586
3636
  "making or choosing store art for Summer Games: key art, cover, icon, screenshots, trailer",
3587
- "summer_store_set_art rejects an image for its shape or size, or summer_store_get_listing says an art slot is missing",
3637
+ "store.set_art rejects an image for its shape or size, or store.get_listing says an art slot is missing",
3588
3638
  "deciding whether a store image may carry text, and which slot falls back to which"
3589
3639
  ],
3590
3640
  "facets": {
@@ -3619,11 +3669,11 @@
3619
3669
  "id": "skill/store-listing",
3620
3670
  "kind": "skill",
3621
3671
  "version": "1.0.0",
3622
- "content_hash": "9a0556424d7a4573e0163ecf47dfb0becd1fee32177eb122c606fc2145968a10",
3623
- "summary": "Write a Summer Games store page per flow (desktop, mobile): targets, title, tagline, descriptions, tags, and what never to write.",
3672
+ "content_hash": "65aa999ac215f155f3fe616230bf8430c947e688f0fa5b84d031764ef2345449",
3673
+ "summary": "Write a Summer Games store page: title, tagline, descriptions, tags, per platform, and what never to write.",
3624
3674
  "use_when": [
3625
3675
  "writing or fixing a game's store page text on Summer Games: title, tagline, description, tags",
3626
- "summer_store_update_listing or summer_store_get_listing says a text field is missing or wrong",
3676
+ "store.update_listing or store.get_listing says a text field is missing or wrong",
3627
3677
  "choosing the targets (web, Mac, Windows, Linux, iPhone, Android) that decide the desktop and mobile store flows"
3628
3678
  ],
3629
3679
  "facets": {
@@ -3651,8 +3701,8 @@
3651
3701
  {
3652
3702
  "id": "skill/summer-analytics",
3653
3703
  "kind": "skill",
3654
- "version": "1.0.0",
3655
- "content_hash": "175f19b54e39a94350342e5c72255c286a7e067ba215bbf7c3de54b03cfda2d0",
3704
+ "version": "1.0.1",
3705
+ "content_hash": "e7b2af31a848ee6442e36dbf686910c3d1a0866e5755a8c968c651fedf8d2d6a",
3656
3706
  "summary": "Send game events to Summer analytics from the authority or client: fire-and-forget, never blocking gameplay.",
3657
3707
  "use_when": [
3658
3708
  "adding analytics, telemetry or event tracking to a Summer game: level completed, coin collected, tutorial funnel",
@@ -3683,15 +3733,15 @@
3683
3733
  "skill/grow-analytics"
3684
3734
  ]
3685
3735
  },
3686
- "status": "preview",
3736
+ "status": "stable",
3687
3737
  "recommended": false
3688
3738
  },
3689
3739
  {
3690
3740
  "id": "skill/summer-apps",
3691
3741
  "kind": "skill",
3692
3742
  "version": "0.1.0",
3693
- "content_hash": "9f6a38561db1bd8be5e63032d81de52dae805e19426f0027064a6eb6126b4177",
3694
- "summary": "Build a Summer App, a team tool inside Summer Studio (balance table, quest editor, tracker, pick grid): build loop, Layout vs code, data as API, agent tools.",
3743
+ "content_hash": "498860c0c7ea881ab78a71299a8788b7dc4976a590309217f796cc82618f8c6d",
3744
+ "summary": "Build a Summer App, a team tool inside Summer Studio (balance table, quest editor, tracker), data and tools.",
3695
3745
  "use_when": [
3696
3746
  "the person asks for a tool for their team (\"build us a loot balance tool\", \"a board to track creatures\")",
3697
3747
  "the person needs a UI to decide, rate or edit something they will come back to",
@@ -3736,8 +3786,8 @@
3736
3786
  "id": "skill/summer-apps-design",
3737
3787
  "kind": "skill",
3738
3788
  "version": "0.1.0",
3739
- "content_hash": "7176fc0bf683de75bf3231a873e240417ff91f1e864ca3c5670c54dc4c3d77c4",
3740
- "summary": "How a Summer App should look - page layout, Summer UI kit components, tables, charts, media, boards, states and a pre-ship checklist.",
3789
+ "content_hash": "794c4b5265513560fbd70fa81f79d1722f21b2e9a78f9c1c95f25edd28fdaedf",
3790
+ "summary": "How a Summer App should look: layout, Summer UI kit components, tables, charts, states, pre-ship check.",
3741
3791
  "use_when": [
3742
3792
  "building or changing the UI of a Summer App (agent-built team tool inside Summer Studio)",
3743
3793
  "an app looks generic, cluttered or off-brand",
@@ -3763,6 +3813,50 @@
3763
3813
  "status": "preview",
3764
3814
  "recommended": true
3765
3815
  },
3816
+ {
3817
+ "id": "skill/summer-assets",
3818
+ "kind": "skill",
3819
+ "version": "1.0.0",
3820
+ "content_hash": "f07a0a80d3db32d6f872946cda7d64624eb6a11f7a193b54d47eff210bd87826",
3821
+ "summary": "Make game assets with Summer without Summer Engine: find, generate and download 3D models, images, audio and video for any engine or web app.",
3822
+ "use_when": [
3823
+ "starting a session that has the Summer assets profile (generation tools, no engine tools)",
3824
+ "the person wants assets for their own engine or web app, not a game built in Summer Engine",
3825
+ "an asset skill ends with Summer Engine steps that this session cannot run"
3826
+ ],
3827
+ "facets": {
3828
+ "lifecycle": [
3829
+ "build"
3830
+ ],
3831
+ "domains": [
3832
+ "assets",
3833
+ "agent-workflow"
3834
+ ],
3835
+ "modalities": [
3836
+ "3d-models",
3837
+ "images",
3838
+ "audio",
3839
+ "video"
3840
+ ]
3841
+ },
3842
+ "related": {
3843
+ "tools": [
3844
+ "tool/search-assets",
3845
+ "tool/list-my-assets",
3846
+ "tool/check-job",
3847
+ "tool/get-asset",
3848
+ "tool/get-asset-download-url"
3849
+ ],
3850
+ "skills": [
3851
+ "skill/asset-strategy",
3852
+ "skill/sound-effect",
3853
+ "skill/prop-model",
3854
+ "skill/concept-art"
3855
+ ]
3856
+ },
3857
+ "status": "stable",
3858
+ "recommended": false
3859
+ },
3766
3860
  {
3767
3861
  "id": "skill/summer-friends",
3768
3862
  "kind": "skill",
@@ -4003,7 +4097,7 @@
4003
4097
  "id": "skill/summer-store",
4004
4098
  "kind": "skill",
4005
4099
  "version": "1.0.0",
4006
- "content_hash": "39259d53de1975ddfa53322c6237c05117e01acd3a105af69e01e4d708c4ea71",
4100
+ "content_hash": "f9b117c35283d1dfa293bb050232f7f585a65b4e3f696a4b800c5bb13d73010e",
4007
4101
  "summary": "Sell Summer items for Sparks in a multiplayer game: shop, checkout, owned items, authority entitlement checks.",
4008
4102
  "use_when": [
4009
4103
  "adding a shop, in-game purchases, cosmetics or skins sold for Sparks to a Summer game",
@@ -4118,8 +4212,8 @@
4118
4212
  "id": "skill/text-to-motion",
4119
4213
  "kind": "skill",
4120
4214
  "version": "1.0.0",
4121
- "content_hash": "a53e8434cc60354b9d56e87de63bce8d4806b4250be10c20392f42599ded4203",
4122
- "summary": "Custom 2-second animation clips from text prompts on any of the user's own rigged models — humanoids, animals, creatures, cartoon plants, props.",
4215
+ "content_hash": "39f8bbfa590e3627c403e98361c69337db6d467c44223b38e70cfdbb6423f961",
4216
+ "summary": "Make custom 2-second animation clips from text on the user's own rigged models: people, animals, props.",
4123
4217
  "use_when": [
4124
4218
  "a custom action the curated motion library lacks — nod, bow, shrug, wave with a specific arm, an emotional gesture",
4125
4219
  "animating a non-humanoid rig — a talking flower, animal, creature, turret or prop",
@@ -4162,8 +4256,8 @@
4162
4256
  "id": "skill/tileable-texture",
4163
4257
  "kind": "skill",
4164
4258
  "version": "1.0.4",
4165
- "content_hash": "8785dadfd93093c2bd2370474704cd8865721a694a2b4406b4556f4bca8b835c",
4166
- "summary": "Generate a seamless tileable texture for walls, floors, or terrain — repeats cleanly on all four edges, wired as a StandardMaterial3D albedo.",
4259
+ "content_hash": "63da23ba0b24335f9d4dd743e99ea7f1ce0579812f96a3f3524fa9442ccdd4e5",
4260
+ "summary": "Generate a seamless tileable texture for walls, floors or terrain, wired as a StandardMaterial3D albedo.",
4167
4261
  "use_when": [
4168
4262
  "generating a seamless tileable texture for walls, floors, terrain, or ceilings — a square tile that repeats cleanly on all four edges",
4169
4263
  "a wall, floor, or terrain material shows visible seams or repetition and needs a texture that tiles cleanly"
@@ -4200,8 +4294,8 @@
4200
4294
  "id": "skill/trailer-shot",
4201
4295
  "kind": "skill",
4202
4296
  "version": "1.0.4",
4203
- "content_hash": "5a52a9b984a63acc6435b7f82bc64d12402b764f784b389ca4dd8f04ee2b405e",
4204
- "summary": "Generate marketing or trailer footage — slow-mo combat, establishing shots, hero beats, splash screens, pitch-deck B-roll — max punch in 5-10 seconds.",
4297
+ "content_hash": "05788bfeb227daf1ae0efb821037cbf23a04670ed61fcf932695186899f32dca",
4298
+ "summary": "Generate trailer footage: slow-mo combat, establishing shots, hero beats, splash screens, 5-10 seconds.",
4205
4299
  "use_when": [
4206
4300
  "generating marketing or trailer footage — slow-mo combat, dramatic establishing shots, hero beats, splash screens, pitch-deck B-roll",
4207
4301
  "producing a store page, pitch deck, or social clip that shows the game at its most dramatic in seconds"
@@ -4234,8 +4328,8 @@
4234
4328
  "id": "skill/tune-performance",
4235
4329
  "kind": "skill",
4236
4330
  "version": "1.0.3",
4237
- "content_hash": "7b8de236e454cf673d6420cb152c04a3b81361d7011263dd0ce0d415cdc85da9",
4238
- "summary": "Profile a slow game with a measurement probe, identify rendering/physics/scripting hotspots, propose fixes with before/after metric expectations.",
4331
+ "content_hash": "7daf6e7ceb4772d9af925ffda61f3aeebf135d67c96046720fe29c2ceab0d519",
4332
+ "summary": "Profile a slow game, find rendering, physics or script hotspots, and propose fixes with expected gains.",
4239
4333
  "use_when": [
4240
4334
  "the game is slow, drops framerate, stutters, takes forever to start, or runs poorly on specific hardware",
4241
4335
  "fps drops or stutter when many units, projectiles, or particles spawn at once and the hotspot is unknown"
@@ -4272,8 +4366,8 @@
4272
4366
  "id": "skill/ui-basics",
4273
4367
  "kind": "skill",
4274
4368
  "version": "1.0.3",
4275
- "content_hash": "76793a56f9517ec7fb20d705ab8584955cad3e3c827a54a26220f87afde343a3",
4276
- "summary": "Build Summer Engine UI — HUDs, menus, health bars, dialogue boxes, Control trees — anchors, containers, responsive layout, theme vs inline styling.",
4369
+ "content_hash": "dc82d24a806416b8a558ec478c0d3fa833f431b73cb4924ee6942176cf4dafee",
4370
+ "summary": "Build UI: HUDs, menus, health bars, dialogue boxes, Control trees, anchors, containers and themes.",
4277
4371
  "use_when": [
4278
4372
  "building Summer Engine UI: HUDs, main menus, pause menus, health bars, progress bars, dialogue boxes, or any Control-node tree",
4279
4373
  "laying out a pause menu, settings screen, or inventory panel with anchors and containers so it stays responsive",
@@ -4302,8 +4396,8 @@
4302
4396
  "id": "skill/ui-graphics",
4303
4397
  "kind": "skill",
4304
4398
  "version": "1.0.3",
4305
- "content_hash": "12b228e15fb4d145b88387a5c1cb5195c271b6a7aaa1ac7071b500716605d817",
4306
- "summary": "Generate game-UI elements — icons, buttons, panels, frames, HUD widgets, badges — flat design, transparent background, wired via TextureRect/NinePatchRect.",
4399
+ "content_hash": "50a4c44163431ccabb1984634b982bd837b7e149c3f4eccab08f2fcbacd796ea",
4400
+ "summary": "Generate game UI art (icons, buttons, panels, frames, HUD widgets) flat, on a transparent background.",
4307
4401
  "use_when": [
4308
4402
  "generating UI elements — icons, buttons, panels, frames, HUD widgets, badges — in flat-design, transparent-background game-UI style",
4309
4403
  "a HUD still uses placeholder icons, buttons, or panels and needs consistent flat-design art"
@@ -4338,8 +4432,8 @@
4338
4432
  "id": "skill/use-widget-asset",
4339
4433
  "kind": "skill",
4340
4434
  "version": "1.0.3",
4341
- "content_hash": "ce8e4abcbcb8f2854e340c6fdf1f8c41fb25c12f703bbf113bd82b54b54f4a76",
4342
- "summary": "Wire a widget slice from a create-asset-sheet pack (panel, button, slider, bar, toggle) into NinePatchRect, TextureProgressBar, or TextureRect via sliceMeta.",
4435
+ "content_hash": "2e7ee38607a85f4cc7166a4df3c8104da92ac4230749262d6ff30977ae8e47fc",
4436
+ "summary": "Wire a widget slice from an asset pack (panel, button, bar, toggle) into NinePatchRect or TextureRect.",
4343
4437
  "use_when": [
4344
4438
  "consuming a widget slice (panel, button, slider, progress bar, toggle pair) from a create-asset-sheet pack so it behaves like a real UI control",
4345
4439
  "turning a panel, button, slider, or bar slice from a generated UI kit into a working NinePatchRect or TextureProgressBar"
@@ -4375,8 +4469,8 @@
4375
4469
  "id": "skill/using-summer",
4376
4470
  "kind": "skill",
4377
4471
  "version": "1.0.5",
4378
- "content_hash": "414b8174a55788c3eb3588ef02017bcba4b9c01b6bd59e776e547dbb11e472ea",
4379
- "summary": "Session bootstrap for Summer projects — establishes how to find and use Summer skills and the summer-engine MCP before any response.",
4472
+ "content_hash": "ae1f6af52ab89886d2515f438ef908956a8a115ebc2a333439ba240ce7834999",
4473
+ "summary": "Session bootstrap: how to find and use Summer skills and the summer-engine MCP before any response.",
4380
4474
  "use_when": [
4381
4475
  "starting any conversation in a Summer Engine project",
4382
4476
  "deciding which Summer skill or summer_* tool applies before answering a game-development request"
@@ -4422,8 +4516,8 @@
4422
4516
  "id": "skill/vehicle-model",
4423
4517
  "kind": "skill",
4424
4518
  "version": "1.0.3",
4425
- "content_hash": "e025a4a073a0d26fb4a92f91ad25c0321daf921bd10acc82e0e3c2c82ac3db38",
4426
- "summary": "Generate a hard-surface vehicle — car, spaceship, mech, boat, tank — static mesh with optional detail-texture pass, wired as VehicleBody3D or MeshInstance3D.",
4519
+ "content_hash": "b6b507995e88a25e3bd0b2d08eceb0503fa610792d451247b3a8d15ecd9da8dc",
4520
+ "summary": "Generate a hard-surface vehicle (car, spaceship, mech, boat, tank) as a static or VehicleBody3D mesh.",
4427
4521
  "use_when": [
4428
4522
  "generating a hard-surface vehicle — car, motorcycle, spaceship, hover bike, boat, mech, tank, helicopter",
4429
4523
  "a racing, flying, or combat game needs a hard-surface vehicle mesh as a VehicleBody3D or MeshInstance3D"
@@ -4463,8 +4557,8 @@
4463
4557
  "id": "skill/verification-before-completion",
4464
4558
  "kind": "skill",
4465
4559
  "version": "1.0.3",
4466
- "content_hash": "3dd6c5a447148c8c8c65619a864bee28873e27992bb6140f181bf7016cbe7a0d",
4467
- "summary": "Run verification commands and confirm output before claiming work complete, fixed, or passing — evidence before assertions, always.",
4560
+ "content_hash": "b444a21783373c546062acb140c6234b42361c4576f6acb73d594e9288465d00",
4561
+ "summary": "Run verification and read its output before claiming work done, fixed or passing: evidence first.",
4468
4562
  "use_when": [
4469
4563
  "about to claim work is complete, fixed, or passing, before committing or creating PRs",
4470
4564
  "about to report a test, build, or fix as passing without having run the command and read its output"
@@ -4491,8 +4585,8 @@
4491
4585
  "id": "skill/verifying-scenes",
4492
4586
  "kind": "skill",
4493
4587
  "version": "1.5.0",
4494
- "content_hash": "ba03998253f61ed6a4ea7a0e21c2a9a04a52ae6e8f8879b8b38ce09abd56a2bf",
4495
- "summary": "Prove scene work landed (snapshot, diff, screenshots, runtime reads), audit 3D scenes for holes and misplacement, review them with shot sheets and zooms.",
4588
+ "content_hash": "0ba9d1be6058436fac423b75d3030cdc104d772919df25f8f792cf7048b44c2b",
4589
+ "summary": "Prove scene work landed: snapshot, diff, screenshots, runtime reads, 3D audits, shot sheets and zooms.",
4496
4590
  "use_when": [
4497
4591
  "after any mutation batch, asset import, or lighting change, before claiming it worked",
4498
4592
  "during a playtest, to read live runtime state (spawned nodes, actual stats) without stopping the game",
@@ -4550,8 +4644,8 @@
4550
4644
  "id": "skill/vfx-dissolve",
4551
4645
  "kind": "skill",
4552
4646
  "version": "1.0.3",
4553
- "content_hash": "5f085214d427708abf45c48e4adcee6576d85a1f99281502354cadb66e312150",
4554
- "summary": "Dissolve effect — a mesh disintegrating with a glowing burning edge, driven by a noise-threshold ShaderMaterial overriding the target's material.",
4647
+ "content_hash": "48ccfce786a518356738dbe3affbe9ba20552f650d9fa7d5801c47b44013bcbc",
4648
+ "summary": "Dissolve effect: a mesh burns away with a glowing edge, from a noise-threshold ShaderMaterial.",
4555
4649
  "use_when": [
4556
4650
  "authoring a dissolve effect — an object disintegrating with a glowing burning edge (disintegrate, burn away, vanish into ash)",
4557
4651
  "a defeated unit, teleport exit, or removed object should burn away with a glowing edge instead of vanishing"
@@ -4589,8 +4683,8 @@
4589
4683
  "id": "skill/vfx-fire",
4590
4684
  "kind": "skill",
4591
4685
  "version": "1.0.3",
4592
- "content_hash": "503ac3cfe7e7b1f73624cd5c11645b1f629a86fd8393e6d4ee7a779aa23edc12",
4593
- "summary": "Fire effect — animated flames built with a particle shader, GPUParticles3D, and a noise-based color ramp — torches, campfires, candles.",
4686
+ "content_hash": "ddd13584921c84ace9b768013974163ba45e01f4c5025506adc03d4523774215",
4687
+ "summary": "Fire effect: animated flames from GPUParticles3D, a particle shader and a noise color ramp.",
4594
4688
  "use_when": [
4595
4689
  "authoring a fire visual effect — torch, campfire, bonfire, flame, burning object, candle",
4596
4690
  "adding fire to props, hazards, or projectiles — torches, braziers, burning wreckage, a fireball or flame jet"
@@ -4630,8 +4724,8 @@
4630
4724
  "id": "skill/vfx-hit-spark",
4631
4725
  "kind": "skill",
4632
4726
  "version": "1.0.2",
4633
- "content_hash": "0b4f46bc6ff5ecbaec05ee1116c7d4c7e196037bbef17f284bbc274601fc05e0",
4634
- "summary": "Hit-spark effect — a one-shot burst of additive billboard particles oriented to a surface normal, fired on impact.",
4727
+ "content_hash": "7b6a5bb0c04124490cfe2d347a59344ac557cc9cf72d43f63df5f4fd3b8e55dc",
4728
+ "summary": "Hit-spark effect: a one-shot burst of additive particles oriented to the surface, fired on impact.",
4635
4729
  "use_when": [
4636
4730
  "authoring a hit-spark effect — impact spark, bullet hit, sword clash, ricochet, sparks at a hit point",
4637
4731
  "melee hits, bullet impacts, or ricochets have no visual feedback at the contact point"
@@ -4670,8 +4764,8 @@
4670
4764
  "id": "skill/vfx-lightning",
4671
4765
  "kind": "skill",
4672
4766
  "version": "1.0.3",
4673
- "content_hash": "5ca8f7119a1db0d6f719fa2379d2c5503f8bff574c2259b1ef7903888e668773",
4674
- "summary": "Lightning bolt effect — procedural jagged path drawn via ImmediateMesh, glow shader, sparks at endpoints, screen shake.",
4767
+ "content_hash": "6c46cb80d126ab3e2056b8c0d82b484d13191ffd7361d863604fa688f49b4ab5",
4768
+ "summary": "Lightning bolt effect: a jagged procedural path with a glow shader, end sparks and screen shake.",
4675
4769
  "use_when": [
4676
4770
  "authoring a lightning bolt effect — chain lightning, electric attack, tesla coil, shock spell, energy beam",
4677
4771
  "a spell, weapon, or hazard needs a jagged electric arc with glow, endpoint sparks, and camera shake"
@@ -4709,8 +4803,8 @@
4709
4803
  "id": "skill/vfx-magic-glow",
4710
4804
  "kind": "skill",
4711
4805
  "version": "1.0.2",
4712
- "content_hash": "a944ff77e589932f6b7569d0d441db72877ff16b44aee88a1dc64d124740414e",
4713
- "summary": "Magic-glow effect — a pulsing OmniLight3D plus drifting additive motes plus optional emission shader on the source mesh.",
4806
+ "content_hash": "fa58ec2a58f7717d4ad9ebd79283d5e04ad017ab6baf48cda640e8aeddb7280b",
4807
+ "summary": "Magic-glow effect: a pulsing OmniLight3D, drifting additive motes and an optional emission shader.",
4714
4808
  "use_when": [
4715
4809
  "authoring a magic-glow effect — enchanted item, soul gem, pulsing aura, rune glow, magical orb, wisp",
4716
4810
  "an item, altar, or portal should read as magical or important with a pulsing light and drifting motes"
@@ -4749,8 +4843,8 @@
4749
4843
  "id": "skill/vfx-muzzle-flash",
4750
4844
  "kind": "skill",
4751
4845
  "version": "1.0.3",
4752
- "content_hash": "f34b6a807eb73ddfe7e10c87903db817eb2e9fb93425b9a91da4a5fb5a2ef7e1",
4753
- "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.",
4846
+ "content_hash": "02f88dcd291a2ab93195d540614e0205d2873a3d804cf11e5f1bb8ba153adadb",
4847
+ "summary": "Muzzle-flash effect: a one-shot ~80 ms burst at a gun barrel, from particles or a star-burst quad.",
4754
4848
  "use_when": [
4755
4849
  "authoring a muzzle-flash effect — gun fire, weapon flash, barrel flash, spell-cast burst at a hand",
4756
4850
  "a gun or spell-casting hand shoots with no visible flash at the barrel or palm"
@@ -4790,8 +4884,8 @@
4790
4884
  "id": "skill/vfx-smoke",
4791
4885
  "kind": "skill",
4792
4886
  "version": "1.0.2",
4793
- "content_hash": "9b0f8d7455e88ea572402c4a776c0432da0570971b547f6ff6f32a1f432b670b",
4794
- "summary": "Smoke effect — a slow-rising column or puff of soft particles built with a noise + density falloff shader on a quad mesh, GPUParticles3D.",
4887
+ "content_hash": "75c8d6040b6a07e903da01893a926a62cf5cb8deadbb0a4f901b8e79fb2243c7",
4888
+ "summary": "Smoke effect: a rising column or puff of soft particles with a noise and density falloff shader.",
4795
4889
  "use_when": [
4796
4890
  "authoring a smoke effect — smoke trail, puff, chimney smoke, steam, fog cloud, explosion smoke",
4797
4891
  "a chimney, campfire, explosion, or vent needs a rising smoke column or puff in a 3D scene"
@@ -4828,8 +4922,8 @@
4828
4922
  "id": "skill/vfx-water-ripple",
4829
4923
  "kind": "skill",
4830
4924
  "version": "1.0.2",
4831
- "content_hash": "691ef9e922dcf1f7f19af60d897515ffaf74452194f9ef22390d449b187ade7a",
4832
- "summary": "Water-ripple effect — animated normal-distortion ripples on a water plane (or as a Decal) triggered by impacts.",
4925
+ "content_hash": "71f0f3c1a8e54148fe35af8da2b8c996943380180ddab39b9aed2ccf2e12b1b3",
4926
+ "summary": "Water-ripple effect: animated normal-distortion ripples on a water plane or Decal, set off by impacts.",
4833
4927
  "use_when": [
4834
4928
  "authoring a water-ripple effect — raindrop ripples, splash ripples, footstep in a puddle, fish jumps",
4835
4929
  "rain, footsteps, or falling objects should disturb a water surface with spreading ripples"
@@ -4865,8 +4959,8 @@
4865
4959
  "id": "skill/voice-line",
4866
4960
  "kind": "skill",
4867
4961
  "version": "1.0.2",
4868
- "content_hash": "15a8ec556f8304a100c80dbb631787d2ec1e475de33aac69e8da84572a23d2da",
4869
- "summary": "Generate TTS voice lines — NPC barks, narrator, dialogue — with voice-id sourcing, a character-to-voice decision tree, and multi-line dialogue support.",
4962
+ "content_hash": "e11779cc132e1d95ab6a7cbc89796955547a4d06ba4a16df31de1b4c8a50192c",
4963
+ "summary": "Generate voice lines (NPC barks, narrator, dialogue) with a character-to-voice choice and multi-line support.",
4870
4964
  "use_when": [
4871
4965
  "\"the NPC needs a greeting / a bark / a narrator intro read aloud\"",
4872
4966
  "giving a character a voice that fits their personality (gruff, cheerful, robotic)",
@@ -4895,8 +4989,8 @@
4895
4989
  "id": "skill/web-and-touch-input",
4896
4990
  "kind": "skill",
4897
4991
  "version": "1.0.0",
4898
- "content_hash": "5a67ec23a03e1162725652d09af7458f47070e66e80040ef671eb22da334cbe8",
4899
- "summary": "Input for the browser and phones: the first-click rule for sound and mouse capture, focus, and touch buttons or a virtual stick on the same actions.",
4992
+ "content_hash": "b7e007e0ef2b844ce5ad23a0d3a726543bb0ecfc7a21ae0d69a14e9614f32a4d",
4993
+ "summary": "Browser and phone input: the first-click rule for sound and mouse capture, focus, touch buttons, a stick.",
4900
4994
  "use_when": [
4901
4995
  "the game plays in the browser and sound, mouse capture or keys do not work until something is clicked",
4902
4996
  "the game should be playable on a phone or tablet with touch controls",
@@ -4932,8 +5026,8 @@
4932
5026
  "id": "skill/web-compatibility-look",
4933
5027
  "kind": "skill",
4934
5028
  "version": "1.0.0",
4935
- "content_hash": "213186fd90b4a308419f271d7a6b3c38935ccb58dca918efa33ffdf90ce2b50f",
4936
- "summary": "Make a web or browser game look high-end in the Compatibility renderer (WebGL 2): what works, what to avoid, 2D and 3D recipes, web performance.",
5029
+ "content_hash": "5f22005f3d1fcf9de6b6d9ff2423adad33b3395ba7e11a86fd746afba6b4f647",
5030
+ "summary": "Make a browser game look high-end in the Compatibility renderer (WebGL 2): what works, recipes, speed.",
4937
5031
  "use_when": [
4938
5032
  "the game plays in the browser or is exported for the web and must look finished",
4939
5033
  "the look is flat, grey or default in the web preview, or a Forward+ feature does nothing there",
@@ -4972,8 +5066,8 @@
4972
5066
  "id": "skill/world-building-3d",
4973
5067
  "kind": "skill",
4974
5068
  "version": "1.1.1",
4975
- "content_hash": "d19a3fab5ca7228da025d609599525dc7350dc3ece21120864be9bb056cde453",
4976
- "summary": "Compose, ground, space, and validate 3D scenes with Summer's four bounded spatial tools — exact paths, one geometric decision at a time, verified.",
5069
+ "content_hash": "1e9a8a886b219f1969b83e99bd10288d65947ece79f378f260664b3e90d8b568",
5070
+ "summary": "Compose, ground and space 3D scenes with Summer's four spatial tools, one geometric decision at a time.",
4977
5071
  "use_when": [
4978
5072
  "placing or grounding props on floors, shelves, ramps, or tables without hand-tuning transforms",
4979
5073
  "aligning or evenly spacing a group of 3D objects along one world axis",
@@ -5049,7 +5143,7 @@
5049
5143
  "id": "skill/writing-skills",
5050
5144
  "kind": "skill",
5051
5145
  "version": "1.0.3",
5052
- "content_hash": "2669bbbf0d912f86deb9c03fee04f53d80f2d69cebb5e508039c18225f72f30f",
5146
+ "content_hash": "1cbc07d632d281f725f471de3f1d63b28c10b95e862b6d929fce4f985ef60713",
5053
5147
  "summary": "Create, edit, and verify agent skills — format, structure, testing with subagents, and best practices.",
5054
5148
  "use_when": [
5055
5149
  "creating new skills, editing existing skills, or verifying skills work before deployment",
@@ -5531,7 +5625,7 @@
5531
5625
  "id": "tool/add-node",
5532
5626
  "kind": "tool",
5533
5627
  "version": "1.0.2",
5534
- "content_hash": "7e0cfd6870d89b063d76ae5231852430dbf958f64a658d3fb6d13db2d95c8d50",
5628
+ "content_hash": "d9ca4203d9ccc0f041d578b89c2da644b89eff4c5782692c5fb611c51edc5016",
5535
5629
  "summary": "Add a node of any Godot type to an exact scene, which does not need to be the active editor tab.",
5536
5630
  "use_when": [
5537
5631
  "building out scene structure node by node",
@@ -5565,7 +5659,7 @@
5565
5659
  "id": "tool/align-distribute-3d",
5566
5660
  "kind": "tool",
5567
5661
  "version": "1.0.0",
5568
- "content_hash": "9323fc85f7fc846bef217f369f417d048a408767bbe2173613f09b0120d3bb02",
5662
+ "content_hash": "61bfc19c91dbe8b2e91e49caee6df5ca4794abe5a621a0a1d02a9ad6fbe120c4",
5569
5663
  "summary": "Align (min/center/max) or equal-space (centers/gaps) 2-16 ordered 3D subjects along one world axis from their visible AABBs, then save the scene.",
5570
5664
  "use_when": [
5571
5665
  "lining up props, stalls, pillars, or lights along one axis",
@@ -5658,7 +5752,7 @@
5658
5752
  "id": "tool/app-call",
5659
5753
  "kind": "tool",
5660
5754
  "version": "1.0.0",
5661
- "content_hash": "489fb7d31ffe77b2ec9e403b7c51f2c2f1e486274e7e488797490209bab57ab2",
5755
+ "content_hash": "590d3d36a5e234a39269e104fcc5cb7ad0a2a0ce940a56f11af28e1aef566712",
5662
5756
  "summary": "Run one of a Summer App's agent tools inside the person's open app.",
5663
5757
  "use_when": [
5664
5758
  "\"nerf the bow using the balance formula in our app\"",
@@ -5887,7 +5981,7 @@
5887
5981
  "id": "tool/app-guide",
5888
5982
  "kind": "tool",
5889
5983
  "version": "1.0.0",
5890
- "content_hash": "4648e830cef1a162e9df85ab0423dc4fbe099409682d375e325dde085521e5e3",
5984
+ "content_hash": "f8c8dad7c576c3b8bdd4d9feaade4e7ce0dabf9627dfcf54396a81351d66f820",
5891
5985
  "summary": "Read the Summer Apps build guide: when to build an app, Layout vs code, build loop, manifest, SDK, UI kit, layout format, design rules and worked examples.",
5892
5986
  "use_when": [
5893
5987
  "before building or changing a Summer App",
@@ -5964,7 +6058,7 @@
5964
6058
  "id": "tool/app-page",
5965
6059
  "kind": "tool",
5966
6060
  "version": "1.0.0",
5967
- "content_hash": "4e3a2feb1c87ca57cebded9808fb7da24e46ca66c058b29ed1e3f2f15a07592e",
6061
+ "content_hash": "bf782b7bfd2f8e97f4e2734b9dabdf7819694a84141aabae9427bd9e9093fd80",
5968
6062
  "summary": "Read or use the fields and buttons an open Summer App declared (fill values, press actions).",
5969
6063
  "use_when": [
5970
6064
  "\"set the budget to 60 in the balance app\"",
@@ -6078,10 +6172,10 @@
6078
6172
  "id": "tool/app-screenshot",
6079
6173
  "kind": "tool",
6080
6174
  "version": "1.0.0",
6081
- "content_hash": "e2c089afcb531ea86b85ef8a3db5c99db23a7ada23a3056085f7d7e048df6fe6",
6175
+ "content_hash": "4a32498bfb47bf69c7b67c8e9c90ae409d33c5deceddf0217cf6712eb4e300e0",
6082
6176
  "summary": "See a Summer App without the person - a headless, read-only render (PNG) with its console, errors, refused calls and declared page.",
6083
6177
  "use_when": [
6084
- "right after every summer_app_publish, to check the app renders with real data",
6178
+ "right after every apps.publish, to check the app renders with real data",
6085
6179
  "\"does my app look right on a phone / in dark mode\"",
6086
6180
  "finding why an app shows nothing (SDK not connected, script errors)"
6087
6181
  ],
@@ -6118,10 +6212,10 @@
6118
6212
  "id": "tool/app-tools",
6119
6213
  "kind": "tool",
6120
6214
  "version": "1.0.0",
6121
- "content_hash": "f9fda7b5271107ff4c1a057749fb2c213b50b187506b38f43a994794abb0d5a5",
6215
+ "content_hash": "86ed720b987f72a0dc3ececdf9c3039ef7a898dc34b5327fafb860df463a73e5",
6122
6216
  "summary": "List the agent tools a Summer App declares.",
6123
6217
  "use_when": [
6124
- "before calling app logic with summer_app_call",
6218
+ "before calling app logic with apps.call",
6125
6219
  "\"what can our balance app do for me\""
6126
6220
  ],
6127
6221
  "facets": {
@@ -6195,7 +6289,7 @@
6195
6289
  "id": "tool/attach-to-surface",
6196
6290
  "kind": "tool",
6197
6291
  "version": "1.0.0",
6198
- "content_hash": "e2207bbdab1a86f499382d89314fc48ea501080d814f15ffdfb9d06b47f047db",
6292
+ "content_hash": "2909a46fb55a7a64373a6a7464e5f97fbbd2a68c0a8ba0c1803134effad273ed",
6199
6293
  "summary": "Mount a piece on a wall, ceiling or floor — turn its measured back into the surface found by a ray, keep it upright, seat it at a standoff. Saves the scene.",
6200
6294
  "use_when": [
6201
6295
  "mounting a downpipe, gutter, lamp, AC unit, sign or fire escape on a facade",
@@ -6245,7 +6339,7 @@
6245
6339
  "id": "tool/batch",
6246
6340
  "kind": "tool",
6247
6341
  "version": "1.1.0",
6248
- "content_hash": "ec6fa446a214a15c5562061ba0f39072f698ea69243e4326e4931683bc62f286",
6342
+ "content_hash": "0ba437873ed75942b3ac5199b2dcc4c2b0bbd73f015b38414fa4106b5f995ba3",
6249
6343
  "summary": "Run engine ops in one call, verbatim; one undo step unless single-only ops split it. ReparentNode keeps and verifies its subtree; raw ConnectSignal is refused.",
6250
6344
  "use_when": [
6251
6345
  "multi-node builds that should undo as one step (no single-only ops in the list)",
@@ -6279,7 +6373,7 @@
6279
6373
  "id": "tool/camera-bookmark",
6280
6374
  "kind": "tool",
6281
6375
  "version": "1.0.0",
6282
- "content_hash": "42c4dfe31c6634c1b583a8e831a040d3d4b5b6bbdfe97ed71a2d7810a5b39891",
6376
+ "content_hash": "fd351b49f70ac366fb61f4f4de7d8a32f1e9badbf0175cc19e4bc8a238398d10",
6283
6377
  "summary": "Save, list, or delete named camera viewpoints stored in the project, so before/after screenshots are taken from exactly the same pose.",
6284
6378
  "use_when": [
6285
6379
  "\"save this camera angle\" / \"remember this viewpoint\" so later screenshots line up with it",
@@ -6326,14 +6420,14 @@
6326
6420
  {
6327
6421
  "id": "tool/capture-gameplay",
6328
6422
  "kind": "tool",
6329
- "version": "1.0.0",
6330
- "content_hash": "7195fee358600665d2b1e0ec40eeb68a7c517e775f5cc4a366259bceba07cd03",
6423
+ "version": "1.0.1",
6424
+ "content_hash": "6e650359c7674783ad39e7fd1c75c856be4dd7d5da6215e8b86c7bd8e517be07",
6331
6425
  "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.",
6332
6426
  "use_when": [
6333
6427
  "\"take gameplay screenshots for my store page\"",
6334
6428
  "\"I need screenshots but the editor is not open\"",
6335
6429
  "\"capture a 1920x1080 frame of my game\"",
6336
- "collecting real gameplay screenshots for summer_store_set_art desktop.screenshots or mobile.screenshots",
6430
+ "collecting real gameplay screenshots for store.set_art desktop.screenshots or mobile.screenshots",
6337
6431
  "every capture shows the title screen — pass the game's flags in args or steps like press Play"
6338
6432
  ],
6339
6433
  "facets": {
@@ -6349,7 +6443,7 @@
6349
6443
  "compatibility": {
6350
6444
  "engine": ">=4.6"
6351
6445
  },
6352
- "status": "preview",
6446
+ "status": "stable",
6353
6447
  "mcp_tool_name": "summer_capture_gameplay",
6354
6448
  "remote": true,
6355
6449
  "authority": {
@@ -6364,10 +6458,10 @@
6364
6458
  "id": "tool/check-job",
6365
6459
  "kind": "tool",
6366
6460
  "version": "1.0.2",
6367
- "content_hash": "a17e889099781c54902facf3abcbbdd8c10c0018333fdceb40d48f24dc01f183",
6461
+ "content_hash": "6212245eb252683666471ab80d880eedecfff561525f240be4af1311052b5340",
6368
6462
  "summary": "Check the status of an async generation job by id.",
6369
6463
  "use_when": [
6370
- "a generation ran without waiting, or timed out, and needs re-checking",
6464
+ "a generation timed out and needs re-checking",
6371
6465
  "\"is my 3D model / video done yet?\"",
6372
6466
  "a generate_* call returned a job id instead of a finished asset"
6373
6467
  ],
@@ -6398,7 +6492,7 @@
6398
6492
  "id": "tool/clear-console",
6399
6493
  "kind": "tool",
6400
6494
  "version": "1.0.2",
6401
- "content_hash": "5d96c1b758bcb0521a2ba2f291fc5b3929487df9222b735238eb97d7a645077c",
6495
+ "content_hash": "9c9505a048c77cb19991a7e736c343190909f584f4a875f6b814e871460bb815",
6402
6496
  "summary": "Clear the editor's Output panel for a clean slate before running the game.",
6403
6497
  "use_when": [
6404
6498
  "before a play session whose console output you want isolated",
@@ -6432,7 +6526,7 @@
6432
6526
  "id": "tool/connect-ports",
6433
6527
  "kind": "tool",
6434
6528
  "version": "1.0.0",
6435
- "content_hash": "d3423ce431ff8bde3f0f288d5b4bf47788fca541694390168f0b31baff40a45a",
6529
+ "content_hash": "1018251fb6ed05da7397988cde9ee05498601c48331c0d765b3abb645a85cac1",
6436
6530
  "summary": "Join one piece's port (a Marker3D, or an open pipe end id such as '+Y') to another's, facing it; refuses joins that tilt the piece. Saves the scene.",
6437
6531
  "use_when": [
6438
6532
  "joining a pipe, duct or gutter section end to end with the previous one",
@@ -6480,7 +6574,7 @@
6480
6574
  "id": "tool/connect-signal",
6481
6575
  "kind": "tool",
6482
6576
  "version": "1.1.0",
6483
- "content_hash": "d37c9147743f97b9cd6f3acd1e287ef2af7df20b273c48dca05bb6cb427d236f",
6577
+ "content_hash": "bd6c59df3479e5d60c0dac5f61dee6cde3da59054122add68bd344ffe4bc167e",
6484
6578
  "summary": "Connect a signal between two nodes so the saved scene keeps it (CONNECT_PERSIST, verified from the saved .tscn); the receiver should define the target method.",
6485
6579
  "use_when": [
6486
6580
  "wiring events like body_entered, pressed, or timeout",
@@ -6514,7 +6608,7 @@
6514
6608
  "id": "tool/create-debug-report",
6515
6609
  "kind": "tool",
6516
6610
  "version": "1.0.2",
6517
- "content_hash": "b950bca3f72f732d102142d9e233a4b27ffac33dd8a75515f0e71648742405a8",
6611
+ "content_hash": "003ad4650cc4055b187ce8ee77a98c2a1da72a5b74fb2e0faf89fbf6ab6a4094",
6518
6612
  "summary": "Create a support-ready Markdown debug report: doctor checks, engine health, diagnostics, console, and debugger output.",
6519
6613
  "use_when": [
6520
6614
  "the user wants to send Summer a bug report",
@@ -6548,7 +6642,7 @@
6548
6642
  "id": "tool/create-scene",
6549
6643
  "kind": "tool",
6550
6644
  "version": "1.0.2",
6551
- "content_hash": "cfb55fc92129fca8a2c50819242e2961f69542773822118aa04c0aa599f13dae",
6645
+ "content_hash": "8a8d28ab4feebc5cbbc9169f6320c64688ab74f950d4ad4c3fc7c089288bf21d",
6552
6646
  "summary": "Create a new minimal .tscn on disk with a create-only guard and read-back verification; never touches the open scene.",
6553
6647
  "use_when": [
6554
6648
  "starting a new level, prefab, or UI scene file",
@@ -6582,7 +6676,7 @@
6582
6676
  "id": "tool/debug-views",
6583
6677
  "kind": "tool",
6584
6678
  "version": "1.0.0",
6585
- "content_hash": "deb767453ff63dcacf4b92208baa69b49b1b15b7d3d557b1c23f839a3d45c9f8",
6679
+ "content_hash": "0fcb49a5d34ec6e1f97837a9f10c217dc5b65de667fb3e4e68484ab9b36e8f2e",
6586
6680
  "summary": "One pose as a grid of beauty, lighting-only, unshaded/albedo, world normals, overdraw and wireframe views.",
6587
6681
  "use_when": [
6588
6682
  "understanding WHY a shot reads badly: light direction and pools, texture/value balance, normal seams, overdraw hot spots, triangle density",
@@ -6631,7 +6725,7 @@
6631
6725
  "id": "tool/enable-plugin",
6632
6726
  "kind": "tool",
6633
6727
  "version": "1.0.0",
6634
- "content_hash": "e4785bfe2cf063958bc9c665873f0c38d4079a5127d46dd9310957ffcbfd20c4",
6728
+ "content_hash": "aaad358162df6f1c206ae1b6e80694f35551544074250120f3afb3ae2889873a",
6635
6729
  "summary": "Enable an editor plugin (res://addons/<name>/) and report the real load result, or that an older engine only queued it.",
6636
6730
  "use_when": [
6637
6731
  "an agent wrote or installed an editor plugin and needs it running",
@@ -6669,8 +6763,8 @@
6669
6763
  {
6670
6764
  "id": "tool/export-game",
6671
6765
  "kind": "tool",
6672
- "version": "1.0.0",
6673
- "content_hash": "96efe498dc6c5976b482c00828c770975bb77e4c03a0df4e5f3208e8f0013e95",
6766
+ "version": "1.0.1",
6767
+ "content_hash": "065d9069434d9eda25b7a69594371c52502320adf6cc4caa139fae56b9d9b480",
6674
6768
  "summary": "Export the game in the exact file the Summer Games store takes per platform (iPhone, Android, macOS, Windows bundle; web build; desktop download), headless.",
6675
6769
  "use_when": [
6676
6770
  "\"export my game for summer.games\"",
@@ -6678,7 +6772,7 @@
6678
6772
  "\"export my game for iPhone and Android on Summer Games\"",
6679
6773
  "\"make a web build of my game for summer.games\"",
6680
6774
  "\"export a Mac or Windows download for my store page\"",
6681
- "preparing the bundle that summer_publish_build uploads"
6775
+ "preparing the bundle that store.upload_file uploads"
6682
6776
  ],
6683
6777
  "facets": {
6684
6778
  "lifecycle": [
@@ -6693,7 +6787,7 @@
6693
6787
  "compatibility": {
6694
6788
  "engine": ">=4.6"
6695
6789
  },
6696
- "status": "preview",
6790
+ "status": "stable",
6697
6791
  "mcp_tool_name": "summer_export_game",
6698
6792
  "remote": true,
6699
6793
  "authority": {
@@ -6708,7 +6802,7 @@
6708
6802
  "id": "tool/export-templates",
6709
6803
  "kind": "tool",
6710
6804
  "version": "1.0.0",
6711
- "content_hash": "df384233563daadc6ed0c1edef6169f63fc7aea0307f53df4b3ae75aaef1c2ea",
6805
+ "content_hash": "347b3d0ed648ee65c250050fd8b56f7b90792192fea02cd889365f193e24448a",
6712
6806
  "summary": "List and install Summer Engine export templates (Summer's WebGPU Forward+ web template, macOS, Windows) from Summer's CDN, sha256-checked.",
6713
6807
  "use_when": [
6714
6808
  "\"install the web export template\"",
@@ -6743,7 +6837,7 @@
6743
6837
  "id": "tool/fabricate-3d",
6744
6838
  "kind": "tool",
6745
6839
  "version": "1.0.0",
6746
- "content_hash": "a81490caa6d84592309e7d06848186916263f18b7e1d98877672767ff9fa83a0",
6840
+ "content_hash": "9d8e01e15bd6e446a729b2c8e533835d85646ca277f36f62b10100db87289e17",
6747
6841
  "summary": "Fabricate a mesh with a bpy script in the user's own Blender (headless, engine-supervised), import the .glb into res://, optionally instantiate it.",
6748
6842
  "use_when": [
6749
6843
  "a modular kit with exact dimensions and snapping — walls, pipes, fences, rails — where generation cannot hold size and style across many pieces",
@@ -6804,7 +6898,7 @@
6804
6898
  "id": "tool/frame-nodes",
6805
6899
  "kind": "tool",
6806
6900
  "version": "1.0.0",
6807
- "content_hash": "4a6c94a6ad6dc741d4283434dbdd6d46a8c356793694007623ed0556024eba1b",
6901
+ "content_hash": "53477d1a8603c18a7a5ec1c7a9ccf59000c2361fb0a4c4fbb8d2ad800c2d5857",
6808
6902
  "summary": "Frame nodes by their world bounds and render with the scene's REAL environment and lights (optionally save the pose as a bookmark).",
6809
6903
  "use_when": [
6810
6904
  "\"show me the houses/props with the real lighting\" — fit a camera to one or more nodes and render it with the scene's WorldEnvironment",
@@ -6854,7 +6948,7 @@
6854
6948
  "id": "tool/frame-shot",
6855
6949
  "kind": "tool",
6856
6950
  "version": "1.0.0",
6857
- "content_hash": "896345ba57bd0d99d3d3fd2c721ee05866686c3450f9f8ec61bad24157c15cd3",
6951
+ "content_hash": "0698f5fe6cfcb89703b54caeaf06c39f649f6938f9d23be34bb3e975ea8c7bbf",
6858
6952
  "summary": "Smart framing: find, score and bookmark camera poses for a shot type (establishing, eye level, low-angle, detail, corridor) with in-engine visibility tests.",
6859
6953
  "use_when": [
6860
6954
  "\"find a good view of X\" / \"frame an establishing shot\" / \"show it from the player's eye\" / \"look down the street\"",
@@ -6905,7 +6999,7 @@
6905
6999
  "id": "tool/game-control",
6906
7000
  "kind": "tool",
6907
7001
  "version": "1.0.0",
6908
- "content_hash": "7e8656dbb2760a9a8d4952a6aeab127f54c1e26d9c2041fd19b7924c54414027",
7002
+ "content_hash": "93125d0c5bbc515930739cfe69ffc622b43f57e2b35d88a232e118a68fb236a2",
6909
7003
  "summary": "Pause the running game, resume it, step exactly N physics or process frames, set the time scale, or list the live game instances.",
6910
7004
  "use_when": [
6911
7005
  "pausing the running game and stepping one physics frame at a time to make exact frame-by-frame assertions",
@@ -6957,7 +7051,7 @@
6957
7051
  "id": "tool/game-input",
6958
7052
  "kind": "tool",
6959
7053
  "version": "1.0.1",
6960
- "content_hash": "8b66540c3f42f8eb040ee6fe6483ad59687db16c59334b737618f447132b1e53",
7054
+ "content_hash": "0023e9be570189273a214c3b64932436d2fc76be59d93822aa2c0462cd35a9b8",
6961
7055
  "summary": "Drive the running game's input — script timed synthetic events, or record the real inputs and replay them deterministically on a seeded instance.",
6962
7056
  "use_when": [
6963
7057
  "scripting a timed input sequence against the running game (walk right for 500 ms, jump at frame 30, click a button)",
@@ -7008,7 +7102,7 @@
7008
7102
  "id": "tool/game-probe",
7009
7103
  "kind": "tool",
7010
7104
  "version": "1.0.0",
7011
- "content_hash": "23e31a31694a3b656a674c81589534d526f4f47b5a0dcd05ef5686f4536098f5",
7105
+ "content_hash": "b57502fdab6416856f5ca079a8b81bbfde74146addc8b8397f52118c9a62b62e",
7012
7106
  "summary": "State AND pixels of one frame of the RUNNING game, atomically — live tree, property reads, and a screenshot stamped with the same frame counters.",
7013
7107
  "use_when": [
7014
7108
  "proving what the running game is actually doing before and after an action — the evidence read of every playtest loop",
@@ -7064,8 +7158,8 @@
7064
7158
  "id": "tool/generate-3d",
7065
7159
  "kind": "tool",
7066
7160
  "version": "1.0.2",
7067
- "content_hash": "62fccc4762a54c16d1c64da056ee21188a6a4be311fa43cc8fbe3e9be7977c85",
7068
- "summary": "Generate a 3D model from text or images via Summer Studio, with optional auto-rig and animation pipeline; waits or returns a job id.",
7161
+ "content_hash": "6668e5ca70c44f1ae291e7368a64396ce3eaf8412343f45e0b44e1899981006f",
7162
+ "summary": "Generate a 3D model from text or images via Summer Studio, with optional auto-rig and animation pipeline; returns a job id to poll with summer_check_job.",
7069
7163
  "use_when": [
7070
7164
  "creating a 3D asset or character from a prompt or reference image",
7071
7165
  "\"make me a low-poly tree / a sci-fi crate / a goblin for my game\"",
@@ -7165,7 +7259,7 @@
7165
7259
  "id": "tool/generate-motion",
7166
7260
  "kind": "tool",
7167
7261
  "version": "1.1.0",
7168
- "content_hash": "717ddb290afa9515ba84e041371c78eb5e26a875bda5c9914235fb4751f5b6ef",
7262
+ "content_hash": "e9353fcbb021788c09bf22ca0d6d0934015fd16637b831df268d40c0331f162f",
7169
7263
  "summary": "Generate animation clips for a rigged model — curated humanoid mocap by name, or text-to-motion on any of your own rigs; costs credits, so confirm first.",
7170
7264
  "use_when": [
7171
7265
  "adding idle, walk, run, or combat clips to a rigged character",
@@ -7447,7 +7541,7 @@
7447
7541
  "id": "tool/get-console",
7448
7542
  "kind": "tool",
7449
7543
  "version": "1.0.3",
7450
- "content_hash": "99bdf65dbbef0a834967d7149567addddcb8a1ffb35ca0c77786ec038b1cfbe2",
7544
+ "content_hash": "b956953bb799948c57488b7940cbd3666772a5b0685f5c713a235da8d75777bc",
7451
7545
  "summary": "Read recent editor Output panel messages, deduplicated and filterable by level, type, or substring. Editor console only - never the post-play verdict.",
7452
7546
  "use_when": [
7453
7547
  "diagnostics report console issues and you need the message bodies",
@@ -7481,7 +7575,7 @@
7481
7575
  "id": "tool/get-debugger-errors",
7482
7576
  "kind": "tool",
7483
7577
  "version": "1.0.2",
7484
- "content_hash": "86fa42010ffb8e2291a7b71ac2e33eb00cc08124da7b943b4ad4c7a4421b423b",
7578
+ "content_hash": "e1c7f166cb7316022f9a5ddc8444292a67e0e3f60d54e9e8c148a8070282715b",
7485
7579
  "summary": "Read deduplicated runtime errors from the debugger, distinct from console prints; optional stack traces.",
7486
7580
  "use_when": [
7487
7581
  "the running game hit failures like null references or missing nodes",
@@ -7515,7 +7609,7 @@
7515
7609
  "id": "tool/get-debugger-warnings",
7516
7610
  "kind": "tool",
7517
7611
  "version": "1.0.2",
7518
- "content_hash": "dc4de3ffbd4b58ea0abe2461d3787b7914f978e22073369923c8c27ceba07bf3",
7612
+ "content_hash": "ec703ca6d5112f16da7ff3be41911fa4b0ee3de8aa12076c77e2c4ae2d880d78",
7519
7613
  "summary": "Read runtime warnings from the debugger panel as structured entries with file, line, and callstack.",
7520
7614
  "use_when": [
7521
7615
  "diagnostics show a non-zero debugger warning count",
@@ -7549,7 +7643,7 @@
7549
7643
  "id": "tool/get-diagnostics",
7550
7644
  "kind": "tool",
7551
7645
  "version": "1.0.3",
7552
- "content_hash": "0e5a87fcb41bf8116a1fb33e5f3ba56a057854d873e04b0ec4e4709b6a68618a",
7646
+ "content_hash": "9b7a0053c4c8584168ad2f1ec790ddf75503f2ed856e725aaed13b273acea0b2",
7553
7647
  "summary": "Prioritized overview of editor console, runtime debugger, and script errors and warnings, with complete counts and a trimmed noise tail.",
7554
7648
  "use_when": [
7555
7649
  "first stop after any change, before targeted console or debugger reads",
@@ -7583,7 +7677,7 @@
7583
7677
  "id": "tool/get-project-context",
7584
7678
  "kind": "tool",
7585
7679
  "version": "2.0.0",
7586
- "content_hash": "c8cde53eababe6b12b5e8ca07a189673b09a84d51eea0a844815f7e648465f6e",
7680
+ "content_hash": "d1a8fbd23967b000f87e8f6b9f320597a28c5b5169afb799259fd512670c3b40",
7587
7681
  "summary": "Bind to the open project and return a compact context (project, current and main scene, health summary, template pin, memory, warnings); tree on request.",
7588
7682
  "use_when": [
7589
7683
  "first call in every fresh session, to avoid guessing scene filenames",
@@ -7617,7 +7711,7 @@
7617
7711
  "id": "tool/get-runtime-tree",
7618
7712
  "kind": "tool",
7619
7713
  "version": "1.0.1",
7620
- "content_hash": "65939a49b44d072bde0dac9b005aa32c6d173182254167f94304233bca51adfc",
7714
+ "content_hash": "5ea5e8841b9261ab86c3068b4696fe28a13e262bc041030fbdcbc5b3dd2d53bf",
7621
7715
  "summary": "Scene tree of the RUNNING game — spawned enemies, autoloads, pooled nodes — live state the editor reads can never show.",
7622
7716
  "use_when": [
7623
7717
  "inspecting what actually spawned during a playtest without stopping the game",
@@ -7665,7 +7759,7 @@
7665
7759
  "id": "tool/get-scene-tree",
7666
7760
  "kind": "tool",
7667
7761
  "version": "1.0.2",
7668
- "content_hash": "51749172f527c332e49c070c202f2d19afd3ce1e9dc49ef10c4cb332d7c687b6",
7762
+ "content_hash": "54a13cbd2e420b5da4b7ff6352eadd70ee290278490776cc5888849091c2f811",
7669
7763
  "summary": "Read a scene's node tree, with explicit depth and limit to avoid the engine's silent default truncation.",
7670
7764
  "use_when": [
7671
7765
  "inspecting scene structure before or after mutations",
@@ -7699,7 +7793,7 @@
7699
7793
  "id": "tool/get-script-errors",
7700
7794
  "kind": "tool",
7701
7795
  "version": "1.0.2",
7702
- "content_hash": "e61ba4e1e1033d821073f96be0fbdc959ccb57739465d8f581b2f2d186531ae5",
7796
+ "content_hash": "b157eb54ad6acd2761833e9b162e6e7bb738d7f06ae19d98e6924aa6352cd8ab",
7703
7797
  "summary": "Check one GDScript file for parse and compile errors without running the game.",
7704
7798
  "use_when": [
7705
7799
  "after writing or editing a .gd file, to verify it compiles",
@@ -7767,7 +7861,7 @@
7767
7861
  "id": "tool/grep",
7768
7862
  "kind": "tool",
7769
7863
  "version": "1.0.0",
7770
- "content_hash": "57676c00eaf3003becb56c41ed837102cc29f82822d52d52d4389e9dba77115f",
7864
+ "content_hash": "a03d678632dbb4478703734b9350283693dda36f03f3b8dcaede2ea9cb1982d0",
7771
7865
  "summary": "Search project files with a regex (ripgrep through the engine) and get file, line and text per match, with optional context lines and a result cap.",
7772
7866
  "use_when": [
7773
7867
  "finding where something is in big project files without reading them whole",
@@ -7806,7 +7900,7 @@
7806
7900
  "id": "tool/import-asset",
7807
7901
  "kind": "tool",
7808
7902
  "version": "1.0.2",
7809
- "content_hash": "9cec560d2c7951bbe699a917ecb6865be50e718bee67b81b06801a0ac0eae9c2",
7903
+ "content_hash": "5dc47df734f7da8f1ca91d97d0b7750b46cd2aec93dd93be20341468ecedac0a",
7810
7904
  "summary": "Search the asset library and import the best match into the project in one step, optionally adding 3D models to a scene.",
7811
7905
  "use_when": [
7812
7906
  "the user asks to add a kind of asset, like 'add a tree to the scene'",
@@ -7840,7 +7934,7 @@
7840
7934
  "id": "tool/import-asset-by-id",
7841
7935
  "kind": "tool",
7842
7936
  "version": "1.0.2",
7843
- "content_hash": "b38644fa3c91e9f0eb31864d7e092c3210a7cd2dd2bbe3a692bf4a5685a57d35",
7937
+ "content_hash": "39881bd336a3e43820a9b43040f679602e5b9ebd5067594d52f2e0f272c43788",
7844
7938
  "summary": "Import an exact Summer asset id into the open project via the engine's import pipeline; optionally instantiate 3D models into a scene.",
7845
7939
  "use_when": [
7846
7940
  "importing a just-generated or searched asset without guessing",
@@ -7873,7 +7967,7 @@
7873
7967
  "id": "tool/import-from-url",
7874
7968
  "kind": "tool",
7875
7969
  "version": "1.0.2",
7876
- "content_hash": "627132fc78ac795d7298f52e5b4abe5447bcfacb1f38b2fe4f1d0ef3c1e0be9a",
7970
+ "content_hash": "bfdfd497aba3d2513e041391028294510d2959bed94a4ad379c9246b6e0ad663",
7877
7971
  "summary": "Download one file from a URL and run Godot's full import pipeline so the asset is immediately usable.",
7878
7972
  "use_when": [
7879
7973
  "importing a model, texture, or audio file from an external URL",
@@ -7907,7 +8001,7 @@
7907
8001
  "id": "tool/import-from-url-batch",
7908
8002
  "kind": "tool",
7909
8003
  "version": "1.0.2",
7910
- "content_hash": "cbf45604d03606c044a13831156581f54f210ab0c5fe5955f5cc044f234aa805",
8004
+ "content_hash": "f9537f4cc763cda04468622de95449b9eba54b54d7b06b600eed8c27e707ed53",
7911
8005
  "summary": "Download multiple files by URL in one operation with a single filesystem scan afterwards.",
7912
8006
  "use_when": [
7913
8007
  "importing several related files, like a model plus its textures",
@@ -7941,7 +8035,7 @@
7941
8035
  "id": "tool/import-hdri",
7942
8036
  "kind": "tool",
7943
8037
  "version": "1.0.1",
7944
- "content_hash": "908a64ab271dffc9b8b4fa3f34218cafd9873235b9fe8f1d0007ca3a3f1248a9",
8038
+ "content_hash": "2f395b49c2f1c62077e1d7d0690ffdf91caee908b75072a942f0f0d0e6d51a0d",
7945
8039
  "summary": "Search Poly Haven's CC0 HDRI library and import one into res://sky/ as environment lighting, with the exact run-script snippet that wires the sky.",
7946
8040
  "use_when": [
7947
8041
  "a 3D scene needs real environment lighting and reflections — the cheapest whole-scene visual upgrade",
@@ -7991,7 +8085,7 @@
7991
8085
  "id": "tool/input-map-bind",
7992
8086
  "kind": "tool",
7993
8087
  "version": "1.0.2",
7994
- "content_hash": "b8bd70a01434e41d6108d05f2e0d31b2cc442d0fccd1c494b368ace40b7c6283",
8088
+ "content_hash": "dfdbed8111b9656cdab2a74293a96905ba8612d42907e1c9d8c25cf4eba21ab1",
7995
8089
  "summary": "Create an input action if needed and bind keyboard or mouse events to it.",
7996
8090
  "use_when": [
7997
8091
  "setting up player controls like jump, move, or interact",
@@ -8025,7 +8119,7 @@
8025
8119
  "id": "tool/inspect-asset",
8026
8120
  "kind": "tool",
8027
8121
  "version": "1.0.0",
8028
- "content_hash": "f40a87d891da6193cf9efeb91a0cc6f4d831fd536fbfcad4d02d67ea7444d38d",
8122
+ "content_hash": "44f5e9a36efc013f26f1685fb7fa74096d75e7a41f8e498b2ded2f5a1e281848",
8029
8123
  "summary": "Measure a 3D asset file without adding it to a scene — AABB, origin, meshes, largest planar faces, open pipe ends, Marker3D anchors, collision shapes.",
8030
8124
  "use_when": [
8031
8125
  "learning a kit piece's real size, origin and which way it faces before placing it",
@@ -8075,7 +8169,7 @@
8075
8169
  "id": "tool/inspect-node",
8076
8170
  "kind": "tool",
8077
8171
  "version": "1.1.0",
8078
- "content_hash": "8016dc147b6eac09b87b75f7806b4f996bc80dd8204d29f9e701f40a1d9d75fd",
8172
+ "content_hash": "87b7fa642d6b613c2e4ffc37054b8911fe1f08fe60dea881795c15e42f6869e2",
8079
8173
  "summary": "A node's editable properties with values, Variant types and resources, or only named fields plus derived transform, global_transform, scene_file_path.",
8080
8174
  "use_when": [
8081
8175
  "before modifying a node, to understand its current state",
@@ -8110,7 +8204,7 @@
8110
8204
  "id": "tool/inspect-resource",
8111
8205
  "kind": "tool",
8112
8206
  "version": "1.1.0",
8113
- "content_hash": "410f1d81c41b6b22a0bf754acf6d347b01313ee4fc0c546ba64852f951f1b5ed",
8207
+ "content_hash": "b362399fba15095ce7f7c0f8714833b19ceedc1dc066278425538e13b4364cde",
8114
8208
  "summary": "Read a resource file (a mesh's AABB, surfaces and materials; a scene's nodes; any resource's non-default properties) or a resource a node holds.",
8115
8209
  "use_when": [
8116
8210
  "reading sub-properties that the node inspector only names",
@@ -8145,7 +8239,7 @@
8145
8239
  "id": "tool/inspect-runtime-node",
8146
8240
  "kind": "tool",
8147
8241
  "version": "1.0.1",
8148
- "content_hash": "32557c8048ccd5af1d95a0d71d3d12df48ccc9802aea6b978954e3031ac8e785",
8242
+ "content_hash": "aaa22341f08b2ebb2ed1ac99872ab9a4a4b1b97ca9efbee1b963c46618e66f26",
8149
8243
  "summary": "Live properties of one node in the RUNNING game — actual stats, position, flags — without stopping the game and losing the state.",
8150
8244
  "use_when": [
8151
8245
  "answering \"where IS the player\" or \"what are this enemy's stats right now\" during a playtest",
@@ -8191,7 +8285,7 @@
8191
8285
  "id": "tool/instantiate-scene",
8192
8286
  "kind": "tool",
8193
8287
  "version": "1.1.0",
8194
- "content_hash": "f53c8c4d2df1ae52eb8d47518f780c16c910b17e9b9b443e33bc4030b7a8b039",
8288
+ "content_hash": "7b1a511fbe9f6ec3ebcfb3b6af752e65505fd7ab2caa18220397e8bc8dbe0d0d",
8195
8289
  "summary": "Add an existing scene or 3D model file as a child node, optionally placed in the same call (position, rotation_degrees, scale or transform).",
8196
8290
  "use_when": [
8197
8291
  "placing a .tscn prefab or imported 3D model into a scene",
@@ -8226,7 +8320,7 @@
8226
8320
  "id": "tool/is-running",
8227
8321
  "kind": "tool",
8228
8322
  "version": "1.0.2",
8229
- "content_hash": "d159960b358cb01ecdde97f2fa23cd5cab3e50a4aa77b9a5183d2a92e774046d",
8323
+ "content_hash": "69d9b505487c755c1ad3ff49c9d99ab9c05a0b5a164d17e7625ae4f63925bb68",
8230
8324
  "summary": "Check whether the game is running; returns the active scene path when it is.",
8231
8325
  "use_when": [
8232
8326
  "deciding whether to boot, restart, or capture the running game",
@@ -8326,7 +8420,7 @@
8326
8420
  "id": "tool/measure",
8327
8421
  "kind": "tool",
8328
8422
  "version": "1.0.0",
8329
- "content_hash": "d6104d4b6e3ace9f0397b65ffdb2f2da2c541422ba02e776d7eab0fed5400094",
8423
+ "content_hash": "6cf4decb8cc695922546875eb8e32c80746e033af939a6e350c1d793998ad089",
8330
8424
  "summary": "Gap or overlap per axis between two placed nodes, or whether one face of many nodes is coplanar — catches facade gaps and modules standing proud. Read-only.",
8331
8425
  "use_when": [
8332
8426
  "checking that two facade modules meet edge to edge, or how far apart or overlapping two pieces are on each axis",
@@ -8375,7 +8469,7 @@
8375
8469
  "id": "tool/navigation-probe",
8376
8470
  "kind": "tool",
8377
8471
  "version": "1.0.0",
8378
- "content_hash": "19a82a58187922eb9307e65d2d81fabd7c98487e1939af14b2a4cdf3985d6d9b",
8472
+ "content_hash": "0bd442a60d422fcc164f37cf5f0a4893b76823bf6c79eba14a45ceb710a61227",
8379
8473
  "summary": "Read-only reachability between two world points on the scene's Godot navigation map — readiness, snapped endpoints, route length, up to 16 route points.",
8380
8474
  "use_when": [
8381
8475
  "placing an NPC, pickup, portal, or encounter anchor whose route from spawn matters",
@@ -8424,7 +8518,7 @@
8424
8518
  "id": "tool/open",
8425
8519
  "kind": "tool",
8426
8520
  "version": "1.0.1",
8427
- "content_hash": "c1087ddd07caf7bca466f5545aa8f15c3e28dd6d4cedd41eddb28f466025ff02",
8521
+ "content_hash": "818d25fa4bde4b36dcfb7b29f74b8ee13768f264feee21288998bbf1f7017904",
8428
8522
  "summary": "Open the exact summerengine.com page or editor surface by intent name — billing, my games, an MCP guide, a scene, a node, a dock — or print the URL/op.",
8429
8523
  "use_when": [
8430
8524
  "the user wants to SEE or DECIDE something on the website — \"open my billing page\", \"show me my published games\", \"take me to pricing\", \"open the MCP setup guide for Cursor\"",
@@ -8471,7 +8565,7 @@
8471
8565
  "authority": {
8472
8566
  "filesystem": false,
8473
8567
  "editor_mutation": false,
8474
- "network": false,
8568
+ "network": true,
8475
8569
  "credentials": false,
8476
8570
  "publish": false
8477
8571
  }
@@ -8480,7 +8574,7 @@
8480
8574
  "id": "tool/open-main-scene",
8481
8575
  "kind": "tool",
8482
8576
  "version": "1.0.2",
8483
- "content_hash": "ee8c6ba7f7e0fac6bdfb4a5aa3f4afb2930840c9204c88cb956e2d8080e55900",
8577
+ "content_hash": "a737d0fa2cd6f92f8bc08e6e19846f158a2f3311772ac9fd1c328b0055dc5ba6",
8484
8578
  "summary": "Open the project's configured main scene from project settings instead of guessing scene filenames.",
8485
8579
  "use_when": [
8486
8580
  "any tool reports that no scene is open",
@@ -8514,7 +8608,7 @@
8514
8608
  "id": "tool/open-scene",
8515
8609
  "kind": "tool",
8516
8610
  "version": "1.0.2",
8517
- "content_hash": "1e0bebc35369eae6c894b02603963829bc75a5b4e2db42ae5c1b1bd92827d363",
8611
+ "content_hash": "39d8ac4fd72cd3844777da47afbf536020b4418cf8cceee54bd5aa9e59163aab",
8518
8612
  "summary": "Open a scene file in the editor to switch tabs.",
8519
8613
  "use_when": [
8520
8614
  "switching the editor to an explicitly known scene path",
@@ -8548,7 +8642,7 @@
8548
8642
  "id": "tool/place-adjacent",
8549
8643
  "kind": "tool",
8550
8644
  "version": "1.0.0",
8551
- "content_hash": "891191f1947f53ad9803922be0075636554b4279914e5a6c4e9f064c1c7f3f25",
8645
+ "content_hash": "4b06271d1a3f354e872bfb9d870109b309b14c5e121af910474d9b1358d7df96",
8552
8646
  "summary": "Move one node so its bounds face sits against another's along an axis, lining up the other axes — facade modules edge to edge, storeys stacked. Saves the scene.",
8553
8647
  "use_when": [
8554
8648
  "laying facade or wall modules edge to edge along a street line",
@@ -8598,7 +8692,7 @@
8598
8692
  "id": "tool/play",
8599
8693
  "kind": "tool",
8600
8694
  "version": "1.3.0",
8601
- "content_hash": "847dc3ae4e1602479d2198e6cfa39f31e7b6285d05f97731ffd424830f708afd",
8695
+ "content_hash": "8907087f8f29d2324d92ed9d656c74dfc7530dd55743b0de7c4768c3d3c42753",
8602
8696
  "summary": "Start the game quietly (editor keeps tab and focus) — main or a given scene, embedded or offscreen, with pins, or a local multiplayer session (players).",
8603
8697
  "use_when": [
8604
8698
  "runtime verification after edits",
@@ -8650,7 +8744,7 @@
8650
8744
  "id": "tool/project-setting",
8651
8745
  "kind": "tool",
8652
8746
  "version": "1.0.2",
8653
- "content_hash": "d5942df90e058a5536fc524629c6e34b572c4b36617aaf5246c32732dafa34f6",
8747
+ "content_hash": "6e4518f2563c690a25bf24a4801f11176cfec67dfe63b9cc3baa4776c771ff67",
8654
8748
  "summary": "Set one project.godot setting, like main scene, window size, renderer, or gravity.",
8655
8749
  "use_when": [
8656
8750
  "configuring project-level behavior",
@@ -8683,8 +8777,8 @@
8683
8777
  {
8684
8778
  "id": "tool/publish-build",
8685
8779
  "kind": "tool",
8686
- "version": "1.0.0",
8687
- "content_hash": "653ac78e87a1a84c674bfdf0bf9c03889812edd5566b2c611f327b7cf84335c5",
8780
+ "version": "1.0.1",
8781
+ "content_hash": "2f9c5ce45a996d922b2f51f66acfc6c67c99bbd82c2fd3c7babaee29e5d9f914",
8688
8782
  "summary": "Upload an export from summer_export_game to the creator's store game, confirm-gated - a store bundle as a Build, or a web or native download as a store version.",
8689
8783
  "use_when": [
8690
8784
  "\"upload my game to summer.games\"",
@@ -8707,7 +8801,7 @@
8707
8801
  "compatibility": {
8708
8802
  "engine": ">=4.6"
8709
8803
  },
8710
- "status": "preview",
8804
+ "status": "stable",
8711
8805
  "mcp_tool_name": "summer_publish_build",
8712
8806
  "remote": true,
8713
8807
  "authority": {
@@ -8722,7 +8816,7 @@
8722
8816
  "id": "tool/raycast",
8723
8817
  "kind": "tool",
8724
8818
  "version": "1.0.0",
8725
- "content_hash": "c1b0a03e470031d6c0adfaeccab2c2c8eb386cb08fec980bcfa4c0f43ea5af8e",
8819
+ "content_hash": "ebd29435c93b0650d712a35f2f1def29708a032dddb629207f9132d1f586e91a",
8726
8820
  "summary": "Cast one ray from any point in an open scene — hit node, point and normal; physics first, visual AABB fallback declared. Read-only.",
8727
8821
  "use_when": [
8728
8822
  "finding the wall, floor or ceiling in front of a point and its normal before anything is placed there",
@@ -8770,7 +8864,7 @@
8770
8864
  "id": "tool/read-file",
8771
8865
  "kind": "tool",
8772
8866
  "version": "1.1.0",
8773
- "content_hash": "a17383c044d72243bd190c4d0f4e45f16fba35ad741796a3d68d9ffb495b7f8d",
8867
+ "content_hash": "638ac6a5db54ba05762c846ca5f135ff5c775d8fde57b100be6fe56e0300dca4",
8774
8868
  "summary": "Read a project text file, a line or byte window of it, or the entries of a .json picked by json_path/keys, with the full-file sha256 receipt.",
8775
8869
  "use_when": [
8776
8870
  "reading project files through the engine",
@@ -8812,7 +8906,7 @@
8812
8906
  "id": "tool/read-library",
8813
8907
  "kind": "tool",
8814
8908
  "version": "1.1.0",
8815
- "content_hash": "ded3e95871d25d27a9a53b4f7bc70433587c9d62b81387409505a3e97fb3e2e3",
8909
+ "content_hash": "050fa0a40a40cd54bda86d283c7168863508d5ba9e6142ed57f2f8315f5e54c5",
8816
8910
  "summary": "Load one library entry by id — a skill's body and metadata, a tool's call recipe, a template's pin, a reference's text — ending in the feedback footer.",
8817
8911
  "use_when": [
8818
8912
  "summer_search_library returned an id and you need the entry itself before acting",
@@ -8862,7 +8956,7 @@
8862
8956
  "id": "tool/recent-events",
8863
8957
  "kind": "tool",
8864
8958
  "version": "1.0.0",
8865
- "content_hash": "f8f9c7fba524b0f43f8ff0af45cdaef01fa6ed4710b1c78b3f45d4de1462fed0",
8959
+ "content_hash": "4b31ef694f4acd58c9a671ea1893bfda05c65b10109bb19ad4f31311e298a89c",
8866
8960
  "summary": "Read the newest engine events (saves, plays, op receipts, script errors, imports) in one zero-wait poll — and the next_seq cursor to wait from.",
8867
8961
  "use_when": [
8868
8962
  "\"what just happened in the engine?\" / \"show me the recent events\" — the last saves, plays, op receipts, script errors, imports",
@@ -8913,7 +9007,7 @@
8913
9007
  "id": "tool/remove-node",
8914
9008
  "kind": "tool",
8915
9009
  "version": "1.0.2",
8916
- "content_hash": "5089297f1c5f4f63acba875e158f4e48ee2c84264a2ec43e9aba665bcc0c5fbf",
9010
+ "content_hash": "d7e2917a1fd9b9323f0e5272535fa43f032e691a1da17e592e319629a815a50e",
8917
9011
  "summary": "Remove a node and all its children from a scene; undoable, but destructive.",
8918
9012
  "use_when": [
8919
9013
  "deleting scene content the user asked to remove",
@@ -8947,7 +9041,7 @@
8947
9041
  "id": "tool/repeat-along",
8948
9042
  "kind": "tool",
8949
9043
  "version": "1.0.0",
8950
- "content_hash": "0f8df6a49ce6ea622343627bbf71ef997831da8830251bf6828bb5e3dcfc619e",
9044
+ "content_hash": "288d19a98e7618cb4662d4bcc740fde3fe6d67415f3117bfc24f836854b1ac2b",
8951
9045
  "summary": "Instance copies of one scene along a line in one call — clamps every 0.45 m, braces, fence posts, window rows — and get the created node paths back.",
8952
9046
  "use_when": [
8953
9047
  "placing wall clamps, gutter braces or duct braces at a fixed spacing along a run",
@@ -8996,7 +9090,7 @@
8996
9090
  "id": "tool/replace-node",
8997
9091
  "kind": "tool",
8998
9092
  "version": "1.1.0",
8999
- "content_hash": "73ffc0dc80960e12daee3ec03cdf2a92014d259c1092fb23e60b19ef680f6549",
9093
+ "content_hash": "0fb4ae84243f7d860bf9965add882f0e013445f27649abee91ffcc4681856de5",
9000
9094
  "summary": "Replace a node with another scene or type, keeping its parent, index, name, transform and children, and verify the saved scene holds it.",
9001
9095
  "use_when": [
9002
9096
  "swapping a placeholder for a prefab or changing a body type",
@@ -9038,7 +9132,7 @@
9038
9132
  "id": "tool/replace-text",
9039
9133
  "kind": "tool",
9040
9134
  "version": "1.0.2",
9041
- "content_hash": "f003a37d04d610539c822a9ad7ad22e70452683f29872545e9f29eb2bbefbdf3",
9135
+ "content_hash": "59d1f6c0200833d00053713600ab7f2c201b277b3481bcdbe0357dc272071f54",
9042
9136
  "summary": "Safely replace text in an existing project file: unique match required by default, then a sha256-guarded write.",
9043
9137
  "use_when": [
9044
9138
  "targeted edits to scripts, scenes, or config without resending the whole file",
@@ -9072,7 +9166,7 @@
9072
9166
  "id": "tool/run-editor-script",
9073
9167
  "kind": "tool",
9074
9168
  "version": "1.0.2",
9075
- "content_hash": "7cdf3b2dfcd8d1ed571484fc27347dc44ddc0165b4fc5102ace50a1071155e21",
9169
+ "content_hash": "1b5fb64108c247c1d1d4a362ab53d1c78aa83cf70e1588ce173b8253be489a93",
9076
9170
  "summary": "Run an EditorScript `func _run():` in a fresh headless child editor against the on-disk project — the cold path for batch and project-wide jobs.",
9077
9171
  "use_when": [
9078
9172
  "re-saving many scenes, sweeping resources, mass import fixes, generating .tres assets, long bakes that should not block the live editor",
@@ -9117,9 +9211,9 @@
9117
9211
  {
9118
9212
  "id": "tool/run-script",
9119
9213
  "kind": "tool",
9120
- "version": "1.0.1",
9121
- "content_hash": "048c174e32beef498a5a47a08580f369b1a0be94be2d3aeb33db41ad9a9a7278",
9122
- "summary": "Run a GDScript `func run(ctx):` inside the live editor against the open scene — one script instead of a chain of add-node/set-prop calls.",
9214
+ "version": "1.1.0",
9215
+ "content_hash": "ea06ccc917c1e4fc53944a59d14b443c9565b17e262f50bec15b13709f2ed610",
9216
+ "summary": "Run a GDScript `func run(ctx):` inside the live editor against scenePath — one script instead of a chain of add-node/set-prop calls.",
9123
9217
  "use_when": [
9124
9218
  "a change needs 3+ related ops or any computed placement (scatter, grids, procedural meshes, bulk edits)",
9125
9219
  "the ctx helpers (add_node, add_mesh, grid, scatter, light rig, environment) fit the job"
@@ -9152,7 +9246,7 @@
9152
9246
  "skill/verifying-scenes"
9153
9247
  ]
9154
9248
  },
9155
- "status": "preview",
9249
+ "status": "stable",
9156
9250
  "mcp_tool_name": "summer_run_script",
9157
9251
  "remote": false,
9158
9252
  "authority": {
@@ -9167,7 +9261,7 @@
9167
9261
  "id": "tool/runtime-animate",
9168
9262
  "kind": "tool",
9169
9263
  "version": "1.0.0",
9170
- "content_hash": "58caceb2d272f504d60e6c203ecf7288f64cde10472f402438c7740c3024b1dc",
9264
+ "content_hash": "2f89196429056b127ba70a27877345f69e7c7ad35fde711b8ecc827a77506541",
9171
9265
  "summary": "Drive and read animation in the RUNNING game — AnimationPlayer clips, AnimationTree state machines, and live Skeleton3D bone poses.",
9172
9266
  "use_when": [
9173
9267
  "checking which clip or state-machine state is actually playing in the running game, then driving it (play, seek, travel, set a blend parameter)",
@@ -9220,7 +9314,7 @@
9220
9314
  "id": "tool/runtime-call",
9221
9315
  "kind": "tool",
9222
9316
  "version": "1.0.0",
9223
- "content_hash": "4cf5cd33f6353ee9a11b889a1aa3ca4a2d24f8eb67cae42ca2f2600615d028a3",
9317
+ "content_hash": "de484153bf675702706fee051adf6e2b7f104852afc344781318693838a3e53a",
9224
9318
  "summary": "Call one method on a node in the RUNNING game and get its return value — trigger gameplay code directly instead of waiting for input or timers.",
9225
9319
  "use_when": [
9226
9320
  "triggering gameplay code in the running game and reading its answer — take_damage, start_wave, get_velocity",
@@ -9272,7 +9366,7 @@
9272
9366
  "id": "tool/runtime-set",
9273
9367
  "kind": "tool",
9274
9368
  "version": "1.0.0",
9275
- "content_hash": "19be16f4a367ab9e3aba7403c54231fb7475798972a31946c67dc9d80ba03ff5",
9369
+ "content_hash": "e590a3e770692bde55c467e118c29b720f851c2cc4493aae4e75c1bfed4c9759",
9276
9370
  "summary": "Set one property on a node in the RUNNING game — the live object, never the scene file — and read back whether it applied.",
9277
9371
  "use_when": [
9278
9372
  "putting the running game into a test state without playing there by hand — teleport the player, set health to 1, flip a flag, toggle visibility",
@@ -9324,7 +9418,7 @@
9324
9418
  "id": "tool/runtime-spawn",
9325
9419
  "kind": "tool",
9326
9420
  "version": "1.0.0",
9327
- "content_hash": "3c64559d9b9a5c41b66b6f86c0de97ed7771975e5f8b330ac44e686f68c981e7",
9421
+ "content_hash": "28df6f67219f42d92abe956925c43c4c890948d35cf12dee7f873620e67da34d",
9328
9422
  "summary": "Spawn a PackedScene into the RUNNING game (action spawn) or free a live node (action free) — stage a test in seconds without touching the scene file.",
9329
9423
  "use_when": [
9330
9424
  "staging a runtime test — place three goblins under the spawner, add a pickup next to the player, remove the boss to test the empty-arena path",
@@ -9376,7 +9470,7 @@
9376
9470
  "id": "tool/save-scene",
9377
9471
  "kind": "tool",
9378
9472
  "version": "1.0.2",
9379
- "content_hash": "fefc2489e16634edd4ed29780930e9daad8e002e6fb0d61e48913620a29bc585",
9473
+ "content_hash": "b73c2e7fb78245c5e5a039988b8b280eb4968f804ffa20cb08d3f2aba6132981",
9380
9474
  "summary": "Save an explicit scene to disk, for standalone saves or save-as.",
9381
9475
  "use_when": [
9382
9476
  "a standalone save or save-as is needed",
@@ -9410,7 +9504,7 @@
9410
9504
  "id": "tool/scene-audit",
9411
9505
  "kind": "tool",
9412
9506
  "version": "1.3.0",
9413
- "content_hash": "474abfec07fd4dc9a955bbaf7894bc5bea743f81842646b847bf091611ed2e37",
9507
+ "content_hash": "b4210d50ea13edb1ac413759b5670ebff3795cb87cb25561424223183d221436",
9414
9508
  "summary": "Read-only pass over any 3D scene, from geometry and materials: see-through holes, exposed edges, open pipe ends, floor gaps, clipping props.",
9415
9509
  "use_when": [
9416
9510
  "after each build stage of a 3D level or kit-built street: \"what is wrong with this scene and where exactly?\"",
@@ -9468,7 +9562,7 @@
9468
9562
  "id": "tool/screenshot",
9469
9563
  "kind": "tool",
9470
9564
  "version": "1.2.0",
9471
- "content_hash": "1b3955c9e46ce009b49de86f00418b60d10f55fff0f9804cea7586bcdfc1b551",
9565
+ "content_hash": "c421909fa8ea62c3be65cbbe2863ddffa1599be5b372b5b378a37e0eb435abe3",
9472
9566
  "summary": "Capture a frame from the editor viewport, an offscreen scene render (fixed or bookmarked pose, numbered labels), or the running game, as an actual image.",
9473
9567
  "use_when": [
9474
9568
  "visually verifying layout, scale, framing, or runtime state",
@@ -9600,7 +9694,7 @@
9600
9694
  "id": "tool/select-node",
9601
9695
  "kind": "tool",
9602
9696
  "version": "1.0.2",
9603
- "content_hash": "2ef5adab532c432601cf4ed7a318f3af1123edcbc9ff6298d65f0779d77857f7",
9697
+ "content_hash": "29e08a3ba3e8c523cce8311685f933f9639445e2515f6ef8de7ce6c1385df477",
9604
9698
  "summary": "Select a node in the editor scene tree and show it in the inspector.",
9605
9699
  "use_when": [
9606
9700
  "focusing the user's editor on a specific node",
@@ -9634,7 +9728,7 @@
9634
9728
  "id": "tool/set-prop",
9635
9729
  "kind": "tool",
9636
9730
  "version": "1.0.2",
9637
- "content_hash": "8cede86cfad08b52b99b72a14f6118af168f5ca05856599f0053bff9af8f5d76",
9731
+ "content_hash": "7322a8ec389c209d41c7fe0b56f47c8e8b42616d19044d9b070d7ff6721ab5f9",
9638
9732
  "summary": "Set a node property using Godot string syntax for vectors, colors, transforms, and resource class names.",
9639
9733
  "use_when": [
9640
9734
  "configuring nodes after adding them",
@@ -9668,7 +9762,7 @@
9668
9762
  "id": "tool/set-resource-property",
9669
9763
  "kind": "tool",
9670
9764
  "version": "1.0.2",
9671
- "content_hash": "1d34d2a35dd857909754857b1a5de8696ab88aacfc4a034b5e52a021b282e155",
9765
+ "content_hash": "540bb40211a70992df7971380c4fb61d3563473e90ddc9d4c2dc19791c8fc36e",
9672
9766
  "summary": "Set a nested property on a resource attached to a node, like a collision shape size or material color.",
9673
9767
  "use_when": [
9674
9768
  "modifying sub-properties of meshes, materials, or shapes",
@@ -9702,7 +9796,7 @@
9702
9796
  "id": "tool/shot-sheet",
9703
9797
  "kind": "tool",
9704
9798
  "version": "1.0.0",
9705
- "content_hash": "45db27ac2ad936e72212fc8172bc6facaddc4e8ee7eee723b9decf88f3629dbf",
9799
+ "content_hash": "9e9dddf23e353637b51db1a6ae82e0be981c0c3bbe3274262194a644e9e2a004",
9706
9800
  "summary": "Render N bookmarks and/or poses into one labelled grid image with real lighting; compare each bookmark with its previous render (difference map).",
9707
9801
  "use_when": [
9708
9802
  "seeing every hero view of an environment at once after a change, in one image",
@@ -9786,7 +9880,7 @@
9786
9880
  "id": "tool/snap-to-surface",
9787
9881
  "kind": "tool",
9788
9882
  "version": "1.2.0",
9789
- "content_hash": "b7c9d59e4c42872f02689437a4e091d0429733b4dbf93850aac3fe8e363c93f0",
9883
+ "content_hash": "be7dfce006254a9c8b01a7d4e6402e6f4bccf16c33c88ef4a0828208aeeeaf49",
9790
9884
  "summary": "Move one 3D subject along a world ray until it sits at the requested gap from the first surface (floor, ramp, shelf, table), then save the scene.",
9791
9885
  "use_when": [
9792
9886
  "seating a prop on a floor, ramp, table, or shelf instead of hand-tuning its Y position",
@@ -9837,7 +9931,7 @@
9837
9931
  "id": "tool/snapshot-diff",
9838
9932
  "kind": "tool",
9839
9933
  "version": "1.0.1",
9840
- "content_hash": "500b39603410e8dd9dc7af2526671d58efb341ceff5556f0038f831b5dbcc2b5",
9934
+ "content_hash": "996761994942d2099ccfa3e5352a59fe3eb9cc3c8637a5c1f1718625dcbe657d",
9841
9935
  "summary": "Diff two world snapshots into added/removed/changed nodes and count deltas — the structural receipt that a mutation did exactly what was intended.",
9842
9936
  "use_when": [
9843
9937
  "verifying a mutation batch against the snapshot_id taken before it",
@@ -9884,7 +9978,7 @@
9884
9978
  "id": "tool/starcast",
9885
9979
  "kind": "tool",
9886
9980
  "version": "1.0.0",
9887
- "content_hash": "149de44b173e1bc315fd87bf42d713fb4fa9eba3d7979942293ef6bf200cd222",
9981
+ "content_hash": "d60064e9567a356dbe7c2e0d36e178c0f6eb26feef100e7edf6a941f83e820d1",
9888
9982
  "summary": "Read-only 3D placement rundown for one node — 26 directional clearance casts, contact-or-overlap evidence, grounding, nearby geometry. Never moves or saves.",
9889
9983
  "use_when": [
9890
9984
  "learning what surrounds a placed prop before and after a correction — which direction is blocked, by what, and at what distance",
@@ -9971,7 +10065,7 @@
9971
10065
  "id": "tool/stop",
9972
10066
  "kind": "tool",
9973
10067
  "version": "1.1.1",
9974
- "content_hash": "9b6590d40c5badbd71497513aea70aaa5bb382fee833c3c1fac6af7dc9e73a0a",
10068
+ "content_hash": "4aaebbc1a8692a0d03a1d33bf92b1d3f5ff4adff8e73e075a1aeb3449f03e0af",
9975
10069
  "summary": "Stop the running game (or one named offscreen instance). Does not revert scene edits, undo anything, or save — the editor state is left exactly as it is.",
9976
10070
  "use_when": [
9977
10071
  "runtime verification is finished",
@@ -10012,7 +10106,7 @@
10012
10106
  "id": "tool/test-placement",
10013
10107
  "kind": "tool",
10014
10108
  "version": "1.0.0",
10015
- "content_hash": "4c1ad515f5ae70d1f256b86fb44f3c81984e3f59b8e482c55967c54c58d0e2af",
10109
+ "content_hash": "ecdf39562cc5c5250bf6fd14c092159d8ba66a7f37489b5efd7739a738a253c1",
10016
10110
  "summary": "Ghost-test one 3D node at a candidate global pose without moving it — overlap evidence, grounded state, signed floor gap. Read-only.",
10017
10111
  "use_when": [
10018
10112
  "deciding whether a prop fits in a shelf, cubby, doorway, platform, or dense set before committing the transform",
@@ -10061,7 +10155,7 @@
10061
10155
  "id": "tool/ui-actions",
10062
10156
  "kind": "tool",
10063
10157
  "version": "1.0.0",
10064
- "content_hash": "52cad0fa683ffde23b6c3b5be24ef6e87765b1d67d63c6e646860a77a4072cb5",
10158
+ "content_hash": "ff6998c3ce39f8c0fbfb94daf65e2aec7839265a6ac6b50f27017edafa85f94f",
10065
10159
  "summary": "List the editor's named actions or invoke one by name exactly as its menu item / shortcut would — open Project Settings, switch screens, toggle panels.",
10066
10160
  "use_when": [
10067
10161
  "\"open project settings in the editor\" / \"open the Import dock\" / \"toggle the animation bottom panel\" — an editor-workflow step a human would do with the mouse, driven by its stable action name",
@@ -10113,7 +10207,7 @@
10113
10207
  "id": "tool/ui-activate",
10114
10208
  "kind": "tool",
10115
10209
  "version": "1.0.0",
10116
- "content_hash": "6ef1ca9999070dd2ca3b054f3c20983b83bb4e836a73b960d3a0ca642f4941b6",
10210
+ "content_hash": "8bf16171089ebe5d92367d0357c53e6714f4855dc3ea8399d4aad46b3098120e",
10117
10211
  "summary": "Activate one editor control by tree path — press, toggle, focus, select a tab, type text, dial a value — or dismiss a blocking dialog; state is read back.",
10118
10212
  "use_when": [
10119
10213
  "\"dismiss the dialog that is blocking the editor\" / \"close that popup\" — action dismiss_dialog with the path or title from summer_ui_tree root dialogs",
@@ -10162,7 +10256,7 @@
10162
10256
  "id": "tool/ui-screenshot",
10163
10257
  "kind": "tool",
10164
10258
  "version": "1.0.0",
10165
- "content_hash": "b29c5f4908a6a816425d6281448cf0cd3830b3df91a32a62d86b2da7cebd3c51",
10259
+ "content_hash": "b8e24c872aea905d24154f1b267ab4905c006a576c40962c77bdc66ed1129319",
10166
10260
  "summary": "PNG of the editor window or one dock/dialog/control as an image — the pixels-last fallback for looking at the editor UI, never for picking click coordinates.",
10167
10261
  "use_when": [
10168
10262
  "\"show me what the editor looks like right now\" / \"screenshot the Inspector dock\" — seeing layout or an unfamiliar panel after summer_ui_tree has described it",
@@ -10211,7 +10305,7 @@
10211
10305
  "id": "tool/ui-tree",
10212
10306
  "kind": "tool",
10213
10307
  "version": "1.0.0",
10214
- "content_hash": "83f9f8f61e441eccd050f09a9fb0e12bf4884a5f2a12a0df6102f1f9108ec9d0",
10308
+ "content_hash": "33b17290e03042ae187ea83a60b37547b7a2e7fd57d694ee088e47424210f3c8",
10215
10309
  "summary": "Structured tree of the live editor UI (controls, paths, text, state) or every visible dialog with its blocking flag — the cheap alternative to a screenshot.",
10216
10310
  "use_when": [
10217
10311
  "\"is a dialog blocking the editor\" / \"what does the Inspector dock show\" / \"which main screen is active\" — read editor UI state as structure instead of pixels",
@@ -10261,7 +10355,7 @@
10261
10355
  "id": "tool/wait-for-event",
10262
10356
  "kind": "tool",
10263
10357
  "version": "1.0.0",
10264
- "content_hash": "670da1a0f9820e969ae6f72dac6dd8e253be5c5bb204e92abfb6648482ad42df",
10358
+ "content_hash": "7009939c00649bac528ed87e907fbb2cc9c22d9f4db4d7f810c5ae6ffe36d09e",
10265
10359
  "summary": "Wait for an engine event — the game starting, an op finishing, a script error, a save — instead of sleeping and re-polling; honest timeout.",
10266
10360
  "use_when": [
10267
10361
  "\"wait for the game to start\" — right after summer_play, wait for play.started instead of guessing how long boot takes",
@@ -10314,7 +10408,7 @@
10314
10408
  "id": "tool/world-snapshot",
10315
10409
  "kind": "tool",
10316
10410
  "version": "1.1.0",
10317
- "content_hash": "09d31f36f56fb04eefcd8d4c7b875e320a7525e75659f4a022ca8c5782982d58",
10411
+ "content_hash": "8f8dab1d735156630961e3bbef0b5e8985eb7f9e8e933a173aae163c56fbe9e1",
10318
10412
  "summary": "Structured scene snapshot (paths, transforms, world AABBs, fingerprints, counts), filterable by subtree, class and field; the read around every mutation.",
10319
10413
  "use_when": [
10320
10414
  "taking a diffable baseline before a mutation batch, or verifying transforms/AABBs/fingerprints after one",
@@ -10366,7 +10460,7 @@
10366
10460
  "id": "tool/write-file",
10367
10461
  "kind": "tool",
10368
10462
  "version": "1.0.2",
10369
- "content_hash": "0b2f2d341b256697ac8375e8fe501af6984c9fdf521ea431d5de34b30839ea32",
10463
+ "content_hash": "a4b39712bf00552b3729956397a16c729fdfd477e8798b88b8fdaaad01b7c761",
10370
10464
  "summary": "Create or safely overwrite one complete text file through the identity-bound engine; exactly one guard is required, so writes fail closed.",
10371
10465
  "use_when": [
10372
10466
  "creating a new project file with the create-only guard",
@@ -10399,7 +10493,7 @@
10399
10493
  "id": "tool/zoom",
10400
10494
  "kind": "tool",
10401
10495
  "version": "1.0.0",
10402
- "content_hash": "89aa4303b4c395883ffbc34ca9aa9896fd7bbc75ed23f9d3993550c17ab725ea",
10496
+ "content_hash": "a6cb76ca44426871caaf3e9a27d4d048ef57bd58c483effbff80d17f997a2b56",
10403
10497
  "summary": "High-resolution close-up of exactly a frame region or of mark N, rendered as the exact sub-frustum at full resolution (real detail, not upscaled pixels).",
10404
10498
  "use_when": [
10405
10499
  "checking seams, gaps, floating pieces, texture resolution or tiling up close",