summer-engine 3.8.0 → 4.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (527) hide show
  1. package/.claude-plugin/marketplace.json +2 -13
  2. package/.claude-plugin/plugin.json +24 -22
  3. package/.codex-plugin/plugin.json +18 -22
  4. package/.cursor-plugin/plugin.json +8 -14
  5. package/.factory-plugin/plugin.json +6 -13
  6. package/AGENTS.md +19 -12
  7. package/CHANGELOG.md +133 -0
  8. package/GEMINI.md +3 -3
  9. package/README.md +118 -37
  10. package/assets/icon.png +0 -0
  11. package/commands/start.md +71 -0
  12. package/commands/summer.md +3 -2
  13. package/dist/cli/banner.js +3 -0
  14. package/dist/cli/commands/config.js +3 -2
  15. package/dist/cli/commands/create.js +12 -3
  16. package/dist/cli/commands/list.d.ts +5 -0
  17. package/dist/cli/commands/list.js +30 -13
  18. package/dist/cli/commands/login.d.ts +27 -0
  19. package/dist/cli/commands/login.js +58 -12
  20. package/dist/cli/commands/memory.js +6 -2
  21. package/dist/cli/commands/ops.d.ts +64 -0
  22. package/dist/cli/commands/ops.js +329 -0
  23. package/dist/cli/commands/setup.d.ts +4 -0
  24. package/dist/cli/commands/setup.js +254 -26
  25. package/dist/cli/commands/skills.js +28 -11
  26. package/dist/cli/commands/status.d.ts +26 -0
  27. package/dist/cli/commands/status.js +36 -21
  28. package/dist/cli/index.js +7 -0
  29. package/dist/core/agent-host.d.ts +65 -0
  30. package/dist/core/agent-host.js +193 -0
  31. package/dist/core/capabilities/agent-playbook.d.ts +3 -0
  32. package/dist/core/capabilities/agent-playbook.js +54 -2
  33. package/dist/core/capabilities/apps.d.ts +33 -10
  34. package/dist/core/capabilities/apps.js +25 -12
  35. package/dist/core/capabilities/audit/args.d.ts +6 -6
  36. package/dist/core/capabilities/doctor.d.ts +3 -0
  37. package/dist/core/capabilities/doctor.js +20 -15
  38. package/dist/core/capabilities/fabricate-mesh.d.ts +4 -4
  39. package/dist/core/capabilities/game-task-plan.d.ts +12 -6
  40. package/dist/core/capabilities/game-task-plan.js +80 -5
  41. package/dist/core/capabilities/hdri-import.d.ts +2 -2
  42. package/dist/core/capabilities/motion-generation.d.ts +2 -2
  43. package/dist/core/capabilities/motion-generation.js +2 -2
  44. package/dist/core/capabilities/navigation/open.d.ts +6 -2
  45. package/dist/core/capabilities/navigation/open.js +3 -0
  46. package/dist/core/capabilities/placement.d.ts +23 -23
  47. package/dist/core/capabilities/publish-build.js +2 -0
  48. package/dist/core/capabilities/runtime-control.d.ts +42 -42
  49. package/dist/core/capabilities/scene-script-target.d.ts +17 -0
  50. package/dist/core/capabilities/scene-script-target.js +70 -0
  51. package/dist/core/capabilities/seeing/args.d.ts +16 -16
  52. package/dist/core/capabilities/sfx-choices.d.ts +4 -0
  53. package/dist/core/capabilities/sfx-choices.js +13 -6
  54. package/dist/core/capabilities/tool-dispatch.d.ts +12 -3
  55. package/dist/core/capabilities/tool-dispatch.js +81 -46
  56. package/dist/core/capabilities/ui-control.d.ts +2 -2
  57. package/dist/core/capabilities/world-snapshot.d.ts +4 -4
  58. package/dist/core/embeddings.d.ts +2 -0
  59. package/dist/core/embeddings.js +1 -1
  60. package/dist/core/error-codes.d.ts +62 -0
  61. package/dist/core/error-codes.js +97 -0
  62. package/dist/core/format.d.ts +2 -0
  63. package/dist/core/format.js +2 -1
  64. package/dist/core/hosted-mcp.d.ts +22 -0
  65. package/dist/core/hosted-mcp.js +56 -1
  66. package/dist/core/library-read.js +5 -0
  67. package/dist/core/library-search.d.ts +2 -2
  68. package/dist/core/library-search.js +2 -1
  69. package/dist/core/oauth.js +4 -0
  70. package/dist/core/ops/areas.d.ts +11 -0
  71. package/dist/core/ops/areas.js +24 -0
  72. package/dist/core/ops/catalog.d.ts +45 -0
  73. package/dist/core/ops/catalog.js +157 -0
  74. package/dist/core/ops/cloud.d.ts +64 -0
  75. package/dist/core/ops/cloud.js +198 -0
  76. package/dist/core/ops/contract.d.ts +120 -0
  77. package/dist/core/ops/contract.js +134 -0
  78. package/dist/core/ops/engine-answer.d.ts +25 -0
  79. package/dist/core/ops/engine-answer.js +117 -0
  80. package/dist/core/ops/engine.d.ts +55 -0
  81. package/dist/core/ops/engine.js +649 -0
  82. package/dist/core/ops/public-catalog.d.ts +48 -0
  83. package/dist/core/ops/public-catalog.js +56 -0
  84. package/dist/core/ops/save-files.d.ts +78 -0
  85. package/dist/core/ops/save-files.js +419 -0
  86. package/dist/core/ops/search.d.ts +8 -0
  87. package/dist/core/ops/search.js +187 -0
  88. package/dist/core/skills-registry.d.ts +16 -1
  89. package/dist/core/skills-registry.js +35 -2
  90. package/dist/core/telemetry.d.ts +32 -0
  91. package/dist/core/telemetry.js +38 -10
  92. package/dist/core/tool-profiles.d.ts +25 -0
  93. package/dist/core/tool-profiles.js +41 -0
  94. package/dist/installer/agent-config.d.ts +17 -4
  95. package/dist/installer/agent-config.js +27 -6
  96. package/dist/installer/agent-table.d.ts +12 -0
  97. package/dist/installer/agent-table.js +33 -9
  98. package/dist/installer/cli-permissions.d.ts +65 -0
  99. package/dist/installer/cli-permissions.js +182 -0
  100. package/dist/installer/setup.d.ts +4 -0
  101. package/dist/installer/setup.js +12 -4
  102. package/dist/installer/skills-refresh.d.ts +29 -0
  103. package/dist/installer/skills-refresh.js +261 -0
  104. package/dist/installer/version-check.d.ts +51 -11
  105. package/dist/installer/version-check.js +147 -37
  106. package/dist/mcp/command.js +7 -0
  107. package/dist/mcp/hosted-mount.d.ts +27 -2
  108. package/dist/mcp/hosted-mount.js +53 -23
  109. package/dist/mcp/legacy-toolset.d.ts +27 -0
  110. package/dist/mcp/legacy-toolset.js +43 -0
  111. package/dist/mcp/ops-surface.d.ts +59 -0
  112. package/dist/mcp/ops-surface.js +453 -0
  113. package/dist/mcp/server.d.ts +45 -11
  114. package/dist/mcp/server.js +263 -89
  115. package/dist/mcp/tool-results.d.ts +26 -0
  116. package/dist/mcp/tool-results.js +81 -0
  117. package/dist/mcp/tool-surface.d.ts +65 -0
  118. package/dist/mcp/tool-surface.js +317 -0
  119. package/dist/mcp/tools/app-tools.js +9 -2
  120. package/dist/mcp/tools/asset-tools.js +55 -53
  121. package/dist/mcp/tools/audit-tools.js +21 -21
  122. package/dist/mcp/tools/debug-tools.js +6 -6
  123. package/dist/mcp/tools/fabricate-tools.js +6 -6
  124. package/dist/mcp/tools/generate-tools.js +76 -70
  125. package/dist/mcp/tools/project-tools.d.ts +9 -4
  126. package/dist/mcp/tools/project-tools.js +16 -10
  127. package/dist/mcp/tools/scene-tools.js +12 -23
  128. package/dist/mcp/tools/script-tools.js +9 -5
  129. package/dist/mcp/tools/with-engine.d.ts +6 -0
  130. package/dist/mcp/tools/with-engine.js +19 -0
  131. package/dist/project-memory/agent-instructions.d.ts +47 -0
  132. package/dist/project-memory/agent-instructions.js +226 -0
  133. package/gemini-extension.json +6 -13
  134. package/hooks/pre-commit-doctor.sh +5 -4
  135. package/hooks/session-start.sh +24 -28
  136. package/integrations/README.md +1 -1
  137. package/integrations/claude/README.md +6 -0
  138. package/integrations/claude/manifest-target.json +4 -0
  139. package/integrations/claude-desktop/README.md +1 -1
  140. package/integrations/copilot-jetbrains/README.md +1 -1
  141. package/integrations/gemini/README.md +11 -0
  142. package/integrations/junie/README.md +1 -1
  143. package/integrations/lm-studio/README.md +1 -1
  144. package/integrations/trae/README.md +1 -1
  145. package/integrations/visual-studio/README.md +1 -1
  146. package/integrations/windsurf/README.md +1 -1
  147. package/library/references/mcp-tools-reference/mcp-tools-reference.md +79 -51
  148. package/library/references/mcp-tools-reference/resource.yaml +1 -1
  149. package/library/references/product-map/resource.yaml +2 -2
  150. package/library/skills/3d-lighting/SKILL.md +69 -28
  151. package/library/skills/3d-lighting/resource.yaml +1 -1
  152. package/library/skills/README.md +121 -118
  153. package/library/skills/adaptive-music/SKILL.md +40 -23
  154. package/library/skills/adaptive-music/resource.yaml +1 -1
  155. package/library/skills/agent-playtesting/SKILL.md +23 -1
  156. package/library/skills/agent-playtesting/resource.yaml +1 -1
  157. package/library/skills/ai-characters-in-games/SKILL.md +16 -1
  158. package/library/skills/ai-characters-in-games/resource.yaml +1 -1
  159. package/library/skills/ambient-bed/SKILL.md +38 -13
  160. package/library/skills/ambient-bed/resource.yaml +1 -1
  161. package/library/skills/animated-loop/SKILL.md +60 -32
  162. package/library/skills/animated-loop/resource.yaml +1 -1
  163. package/library/skills/animation-tree/SKILL.md +27 -1
  164. package/library/skills/animation-tree/resource.yaml +1 -1
  165. package/library/skills/art-direction/SKILL.md +17 -3
  166. package/library/skills/art-direction/resource.yaml +1 -1
  167. package/library/skills/asset-strategy/SKILL.md +51 -4
  168. package/library/skills/asset-strategy/resource.yaml +2 -1
  169. package/library/skills/audio-direction/SKILL.md +26 -10
  170. package/library/skills/audio-direction/resource.yaml +1 -1
  171. package/library/skills/auto-fire-targeting/SKILL.md +15 -1
  172. package/library/skills/auto-fire-targeting/resource.yaml +1 -1
  173. package/library/skills/bounded-engine-runs/SKILL.md +1 -1
  174. package/library/skills/bounded-engine-runs/resource.yaml +1 -1
  175. package/library/skills/brainstorm-game/SKILL.md +14 -1
  176. package/library/skills/brainstorm-game/resource.yaml +1 -1
  177. package/library/skills/brainstorming/SKILL.md +1 -1
  178. package/library/skills/brainstorming/resource.yaml +1 -1
  179. package/library/skills/browse-templates/SKILL.md +11 -1
  180. package/library/skills/browse-templates/resource.yaml +1 -1
  181. package/library/skills/camera-rigs/SKILL.md +22 -2
  182. package/library/skills/camera-rigs/resource.yaml +1 -1
  183. package/library/skills/celeste-momentum-platforming/resource.yaml +1 -0
  184. package/library/skills/character-animation-wiring/SKILL.md +28 -4
  185. package/library/skills/character-animation-wiring/resource.yaml +1 -1
  186. package/library/skills/character-model/SKILL.md +83 -47
  187. package/library/skills/character-model/resource.yaml +1 -1
  188. package/library/skills/character-movement/SKILL.md +27 -3
  189. package/library/skills/character-movement/resource.yaml +1 -1
  190. package/library/skills/character-portrait/SKILL.md +39 -19
  191. package/library/skills/character-portrait/resource.yaml +1 -1
  192. package/library/skills/cinematic-cutscene/SKILL.md +79 -46
  193. package/library/skills/cinematic-cutscene/resource.yaml +1 -1
  194. package/library/skills/combat-basics/SKILL.md +20 -1
  195. package/library/skills/combat-basics/resource.yaml +1 -1
  196. package/library/skills/compatibility-renderer-traps/SKILL.md +12 -1
  197. package/library/skills/compatibility-renderer-traps/resource.yaml +1 -1
  198. package/library/skills/concept-art/SKILL.md +29 -12
  199. package/library/skills/concept-art/resource.yaml +1 -1
  200. package/library/skills/concept-to-level/SKILL.md +258 -0
  201. package/library/skills/concept-to-level/references/technical-rules.md +150 -0
  202. package/library/skills/concept-to-level/resource.yaml +44 -0
  203. package/library/skills/create-asset-sheet/SKILL.md +37 -13
  204. package/library/skills/create-asset-sheet/resource.yaml +1 -1
  205. package/library/skills/debug/SKILL.md +34 -2
  206. package/library/skills/debug/resource.yaml +1 -1
  207. package/library/skills/debugging-game-feel/SKILL.md +13 -1
  208. package/library/skills/debugging-game-feel/resource.yaml +1 -1
  209. package/library/skills/design-level/SKILL.md +40 -35
  210. package/library/skills/design-level/resource.yaml +1 -1
  211. package/library/skills/design-mechanic/SKILL.md +18 -1
  212. package/library/skills/design-mechanic/resource.yaml +1 -1
  213. package/library/skills/design-npc/SKILL.md +43 -24
  214. package/library/skills/design-npc/resource.yaml +1 -1
  215. package/library/skills/diagnosing-perf-regressions/SKILL.md +13 -1
  216. package/library/skills/diagnosing-perf-regressions/resource.yaml +1 -1
  217. package/library/skills/driving-the-editor-ui/SKILL.md +24 -1
  218. package/library/skills/driving-the-editor-ui/resource.yaml +1 -1
  219. package/library/skills/environment-kit/SKILL.md +43 -16
  220. package/library/skills/environment-kit/resource.yaml +1 -1
  221. package/library/skills/export-and-ship/SKILL.md +29 -6
  222. package/library/skills/export-and-ship/resource.yaml +1 -1
  223. package/library/skills/fabricating-assets/SKILL.md +30 -7
  224. package/library/skills/fabricating-assets/resource.yaml +3 -3
  225. package/library/skills/facial-and-lipsync/SKILL.md +36 -15
  226. package/library/skills/facial-and-lipsync/resource.yaml +1 -1
  227. package/library/skills/fps-controller/SKILL.md +50 -41
  228. package/library/skills/fps-controller/resource.yaml +1 -1
  229. package/library/skills/game-feel/SKILL.md +34 -8
  230. package/library/skills/game-feel/resource.yaml +1 -1
  231. package/library/skills/gameskill/SKILL.md +15 -4
  232. package/library/skills/gameskill/resource.yaml +1 -1
  233. package/library/skills/gdscript-patterns/SKILL.md +16 -1
  234. package/library/skills/gdscript-patterns/resource.yaml +1 -1
  235. package/library/skills/generate-motion/SKILL.md +51 -21
  236. package/library/skills/generate-motion/resource.yaml +1 -1
  237. package/library/skills/godogen-visual-proof-game-generation/SKILL.md +18 -1
  238. package/library/skills/godogen-visual-proof-game-generation/resource.yaml +1 -0
  239. package/library/skills/grow-analytics/SKILL.md +13 -3
  240. package/library/skills/grow-analytics/resource.yaml +1 -1
  241. package/library/skills/headless-scripting/SKILL.md +14 -1
  242. package/library/skills/headless-scripting/resource.yaml +1 -1
  243. package/library/skills/in-game-purchases/SKILL.md +12 -1
  244. package/library/skills/in-game-purchases/resource.yaml +1 -1
  245. package/library/skills/instantiate-asset-pack/SKILL.md +19 -2
  246. package/library/skills/instantiate-asset-pack/resource.yaml +1 -1
  247. package/library/skills/lumera-single-image-scene-reconstruction/resource.yaml +1 -0
  248. package/library/skills/make-game/SKILL.md +33 -4
  249. package/library/skills/make-game/references/2d-platformer.md +1 -1
  250. package/library/skills/make-game/references/3d-fps.md +1 -1
  251. package/library/skills/make-game/references/3d-horror.md +1 -1
  252. package/library/skills/make-game/references/3d-third-person.md +2 -2
  253. package/library/skills/make-game/resource.yaml +1 -1
  254. package/library/skills/multiplayer/SKILL.md +13 -1
  255. package/library/skills/multiplayer/resource.yaml +1 -1
  256. package/library/skills/multiplayer-movement/SKILL.md +19 -1
  257. package/library/skills/multiplayer-movement/resource.yaml +1 -1
  258. package/library/skills/multiplayer-project/SKILL.md +18 -1
  259. package/library/skills/multiplayer-project/resource.yaml +1 -1
  260. package/library/skills/multiplayer-publish/SKILL.md +25 -7
  261. package/library/skills/multiplayer-publish/resource.yaml +3 -3
  262. package/library/skills/multiplayer-state/SKILL.md +17 -1
  263. package/library/skills/multiplayer-state/resource.yaml +1 -1
  264. package/library/skills/multiplayer-testing/SKILL.md +16 -1
  265. package/library/skills/multiplayer-testing/resource.yaml +1 -1
  266. package/library/skills/music-track/SKILL.md +38 -13
  267. package/library/skills/music-track/resource.yaml +1 -1
  268. package/library/skills/navigate-summer/SKILL.md +26 -9
  269. package/library/skills/navigate-summer/resource.yaml +1 -1
  270. package/library/skills/new-project/SKILL.md +12 -1
  271. package/library/skills/new-project/resource.yaml +1 -1
  272. package/library/skills/organic-model/SKILL.md +48 -18
  273. package/library/skills/organic-model/resource.yaml +1 -1
  274. package/library/skills/pixel-art/SKILL.md +42 -23
  275. package/library/skills/pixel-art/resource.yaml +1 -1
  276. package/library/skills/play/SKILL.md +19 -1
  277. package/library/skills/play/resource.yaml +1 -1
  278. package/library/skills/playtesting-a-feature/SKILL.md +24 -1
  279. package/library/skills/playtesting-a-feature/resource.yaml +1 -1
  280. package/library/skills/procedural-animation/SKILL.md +38 -16
  281. package/library/skills/procedural-animation/resource.yaml +1 -1
  282. package/library/skills/prop-model/SKILL.md +48 -19
  283. package/library/skills/prop-model/resource.yaml +1 -1
  284. package/library/skills/psx-retro-rendering/resource.yaml +1 -0
  285. package/library/skills/publish-your-game/SKILL.md +43 -6
  286. package/library/skills/publish-your-game/resource.yaml +3 -3
  287. package/library/skills/realtime-wet-surfaces/resource.yaml +1 -0
  288. package/library/skills/release-readiness/SKILL.md +13 -1
  289. package/library/skills/release-readiness/resource.yaml +1 -1
  290. package/library/skills/remote-deploy/SKILL.md +15 -1
  291. package/library/skills/remote-deploy/resource.yaml +1 -1
  292. package/library/skills/retarget/SKILL.md +43 -20
  293. package/library/skills/retarget/resource.yaml +1 -1
  294. package/library/skills/running-in-the-cloud/SKILL.md +11 -1
  295. package/library/skills/running-in-the-cloud/resource.yaml +1 -1
  296. package/library/skills/save-load/SKILL.md +16 -1
  297. package/library/skills/save-load/resource.yaml +1 -1
  298. package/library/skills/scene-composition/SKILL.md +18 -1
  299. package/library/skills/scene-composition/resource.yaml +1 -1
  300. package/library/skills/scene-hierarchy-design/SKILL.md +26 -2
  301. package/library/skills/scene-hierarchy-design/resource.yaml +1 -1
  302. package/library/skills/scene-scripting/SKILL.md +96 -636
  303. package/library/skills/scene-scripting/references/ctx-api.md +184 -0
  304. package/library/skills/scene-scripting/references/recipes-2d-ui.md +193 -0
  305. package/library/skills/scene-scripting/references/recipes-3d.md +280 -0
  306. package/library/skills/scene-scripting/resource.yaml +4 -4
  307. package/library/skills/scene-to-level/SKILL.md +24 -2
  308. package/library/skills/scene-to-level/resource.yaml +1 -1
  309. package/library/skills/skill-create/resource.yaml +1 -0
  310. package/library/skills/skill-improve/resource.yaml +1 -0
  311. package/library/skills/skill-test/SKILL.md +12 -2
  312. package/library/skills/skill-test/resource.yaml +1 -0
  313. package/library/skills/skintokens-auto-rigging/resource.yaml +1 -0
  314. package/library/skills/skybox-panorama/SKILL.md +47 -21
  315. package/library/skills/skybox-panorama/resource.yaml +1 -1
  316. package/library/skills/sound-effect/SKILL.md +52 -20
  317. package/library/skills/sound-effect/resource.yaml +1 -1
  318. package/library/skills/spatial-placement/SKILL.md +44 -9
  319. package/library/skills/spatial-placement/resource.yaml +1 -1
  320. package/library/skills/sprite-sheet/SKILL.md +55 -27
  321. package/library/skills/sprite-sheet/resource.yaml +1 -1
  322. package/library/skills/store-art/SKILL.md +14 -3
  323. package/library/skills/store-art/resource.yaml +2 -2
  324. package/library/skills/store-listing/SKILL.md +13 -3
  325. package/library/skills/store-listing/resource.yaml +2 -2
  326. package/library/skills/summer-analytics/SKILL.md +22 -5
  327. package/library/skills/summer-analytics/resource.yaml +2 -2
  328. package/library/skills/summer-apps/SKILL.md +77 -32
  329. package/library/skills/summer-apps/manifest.md +1 -1
  330. package/library/skills/summer-apps/minimal-app.md +7 -7
  331. package/library/skills/summer-apps/resource.yaml +1 -1
  332. package/library/skills/summer-apps/sdk-reference.md +5 -5
  333. package/library/skills/summer-apps-design/SKILL.md +1 -1
  334. package/library/skills/summer-apps-design/resource.yaml +1 -1
  335. package/library/skills/summer-assets/SKILL.md +86 -0
  336. package/library/skills/summer-assets/resource.yaml +34 -0
  337. package/library/skills/summer-cli/SKILL.md +133 -0
  338. package/library/skills/summer-cli/resource.yaml +31 -0
  339. package/library/skills/summer-friends/SKILL.md +14 -0
  340. package/library/skills/summer-leaderboards/SKILL.md +16 -0
  341. package/library/skills/summer-match-results/SKILL.md +17 -0
  342. package/library/skills/summer-matchmaking/SKILL.md +17 -0
  343. package/library/skills/summer-parties/SKILL.md +14 -0
  344. package/library/skills/summer-player-data/SKILL.md +14 -0
  345. package/library/skills/summer-store/SKILL.md +16 -1
  346. package/library/skills/summer-world-chat/SKILL.md +14 -0
  347. package/library/skills/summer-world-saves/SKILL.md +14 -0
  348. package/library/skills/text-to-motion/SKILL.md +45 -23
  349. package/library/skills/text-to-motion/prompts-and-controls.md +5 -5
  350. package/library/skills/text-to-motion/resource.yaml +1 -1
  351. package/library/skills/text-to-motion/rigging-for-text-motion.md +2 -2
  352. package/library/skills/tileable-texture/SKILL.md +37 -15
  353. package/library/skills/tileable-texture/resource.yaml +1 -1
  354. package/library/skills/trailer-shot/SKILL.md +46 -24
  355. package/library/skills/trailer-shot/resource.yaml +1 -1
  356. package/library/skills/tune-performance/SKILL.md +32 -6
  357. package/library/skills/tune-performance/resource.yaml +1 -1
  358. package/library/skills/ui-basics/SKILL.md +55 -36
  359. package/library/skills/ui-basics/resource.yaml +1 -1
  360. package/library/skills/ui-graphics/SKILL.md +64 -38
  361. package/library/skills/ui-graphics/resource.yaml +1 -1
  362. package/library/skills/use-widget-asset/SKILL.md +15 -1
  363. package/library/skills/use-widget-asset/resource.yaml +1 -1
  364. package/library/skills/using-summer/SKILL.md +32 -5
  365. package/library/skills/using-summer/resource.yaml +3 -2
  366. package/library/skills/vehicle-model/SKILL.md +92 -57
  367. package/library/skills/vehicle-model/resource.yaml +1 -1
  368. package/library/skills/verification-before-completion/SKILL.md +1 -1
  369. package/library/skills/verification-before-completion/resource.yaml +1 -1
  370. package/library/skills/verifying-scenes/SKILL.md +31 -2
  371. package/library/skills/verifying-scenes/resource.yaml +1 -1
  372. package/library/skills/vfx-dissolve/SKILL.md +21 -2
  373. package/library/skills/vfx-dissolve/resource.yaml +1 -1
  374. package/library/skills/vfx-fire/SKILL.md +41 -41
  375. package/library/skills/vfx-fire/resource.yaml +1 -1
  376. package/library/skills/vfx-hit-spark/SKILL.md +24 -1
  377. package/library/skills/vfx-hit-spark/resource.yaml +1 -1
  378. package/library/skills/vfx-lightning/SKILL.md +30 -16
  379. package/library/skills/vfx-lightning/resource.yaml +1 -1
  380. package/library/skills/vfx-magic-glow/SKILL.md +46 -32
  381. package/library/skills/vfx-magic-glow/resource.yaml +1 -1
  382. package/library/skills/vfx-muzzle-flash/SKILL.md +43 -35
  383. package/library/skills/vfx-muzzle-flash/resource.yaml +1 -1
  384. package/library/skills/vfx-smoke/SKILL.md +39 -31
  385. package/library/skills/vfx-smoke/resource.yaml +1 -1
  386. package/library/skills/vfx-water-ripple/SKILL.md +35 -31
  387. package/library/skills/vfx-water-ripple/resource.yaml +1 -1
  388. package/library/skills/voice-line/SKILL.md +87 -40
  389. package/library/skills/voice-line/resource.yaml +1 -1
  390. package/library/skills/web-and-touch-input/SKILL.md +20 -1
  391. package/library/skills/web-and-touch-input/resource.yaml +1 -1
  392. package/library/skills/web-compatibility-look/SKILL.md +21 -1
  393. package/library/skills/web-compatibility-look/resource.yaml +1 -1
  394. package/library/skills/world-building-3d/SKILL.md +29 -1
  395. package/library/skills/world-building-3d/resource.yaml +1 -1
  396. package/library/skills/writing-skills/resource.yaml +1 -0
  397. package/library/tools/add-node/GUIDE.md +14 -0
  398. package/library/tools/align-distribute-3d/GUIDE.md +7 -0
  399. package/library/tools/app-call/resource.yaml +1 -1
  400. package/library/tools/app-guide/resource.yaml +2 -2
  401. package/library/tools/app-page/resource.yaml +1 -1
  402. package/library/tools/app-screenshot/resource.yaml +19 -1
  403. package/library/tools/app-tools/resource.yaml +1 -1
  404. package/library/tools/attach-to-surface/GUIDE.md +15 -0
  405. package/library/tools/batch/GUIDE.md +27 -0
  406. package/library/tools/camera-bookmark/GUIDE.md +12 -0
  407. package/library/tools/capture-gameplay/GUIDE.md +3 -0
  408. package/library/tools/capture-gameplay/resource.yaml +3 -3
  409. package/library/tools/check-job/resource.yaml +1 -1
  410. package/library/tools/clear-console/GUIDE.md +3 -0
  411. package/library/tools/connect-ports/GUIDE.md +9 -0
  412. package/library/tools/connect-signal/GUIDE.md +14 -0
  413. package/library/tools/create-debug-report/GUIDE.md +10 -0
  414. package/library/tools/create-scene/GUIDE.md +10 -0
  415. package/library/tools/debug-views/GUIDE.md +7 -0
  416. package/library/tools/enable-plugin/GUIDE.md +3 -0
  417. package/library/tools/export-game/GUIDE.md +3 -0
  418. package/library/tools/export-game/resource.yaml +3 -3
  419. package/library/tools/export-templates/GUIDE.md +3 -0
  420. package/library/tools/fabricate-3d/GUIDE.md +19 -0
  421. package/library/tools/frame-nodes/GUIDE.md +9 -0
  422. package/library/tools/frame-shot/GUIDE.md +9 -0
  423. package/library/tools/game-control/GUIDE.md +9 -0
  424. package/library/tools/game-input/GUIDE.md +9 -0
  425. package/library/tools/game-probe/GUIDE.md +9 -0
  426. package/library/tools/generate-3d/resource.yaml +3 -3
  427. package/library/tools/generate-motion/resource.yaml +2 -2
  428. package/library/tools/get-console/GUIDE.md +9 -0
  429. package/library/tools/get-console/resource.yaml +5 -0
  430. package/library/tools/get-debugger-errors/GUIDE.md +7 -0
  431. package/library/tools/get-debugger-errors/resource.yaml +5 -0
  432. package/library/tools/get-debugger-warnings/GUIDE.md +7 -0
  433. package/library/tools/get-debugger-warnings/resource.yaml +5 -0
  434. package/library/tools/get-diagnostics/GUIDE.md +13 -0
  435. package/library/tools/get-project-context/GUIDE.md +25 -0
  436. package/library/tools/get-runtime-tree/GUIDE.md +7 -0
  437. package/library/tools/get-runtime-tree/resource.yaml +5 -0
  438. package/library/tools/get-scene-tree/GUIDE.md +11 -0
  439. package/library/tools/get-scene-tree/resource.yaml +5 -0
  440. package/library/tools/get-script-errors/GUIDE.md +5 -0
  441. package/library/tools/grep/GUIDE.md +11 -0
  442. package/library/tools/import-asset/GUIDE.md +8 -0
  443. package/library/tools/import-asset-by-id/GUIDE.md +12 -0
  444. package/library/tools/import-from-url/GUIDE.md +10 -0
  445. package/library/tools/import-from-url-batch/GUIDE.md +3 -0
  446. package/library/tools/import-hdri/GUIDE.md +16 -0
  447. package/library/tools/input-map-bind/GUIDE.md +11 -0
  448. package/library/tools/inspect-asset/GUIDE.md +14 -0
  449. package/library/tools/inspect-asset/resource.yaml +5 -0
  450. package/library/tools/inspect-node/GUIDE.md +11 -0
  451. package/library/tools/inspect-node/resource.yaml +5 -0
  452. package/library/tools/inspect-resource/GUIDE.md +7 -0
  453. package/library/tools/inspect-resource/resource.yaml +5 -0
  454. package/library/tools/inspect-runtime-node/GUIDE.md +7 -0
  455. package/library/tools/inspect-runtime-node/resource.yaml +5 -0
  456. package/library/tools/instantiate-scene/GUIDE.md +12 -0
  457. package/library/tools/is-running/GUIDE.md +3 -0
  458. package/library/tools/measure/GUIDE.md +8 -0
  459. package/library/tools/navigation-probe/GUIDE.md +9 -0
  460. package/library/tools/open/resource.yaml +2 -2
  461. package/library/tools/open-main-scene/GUIDE.md +6 -0
  462. package/library/tools/open-scene/GUIDE.md +8 -0
  463. package/library/tools/place-adjacent/GUIDE.md +7 -0
  464. package/library/tools/play/GUIDE.md +13 -0
  465. package/library/tools/project-setting/GUIDE.md +9 -0
  466. package/library/tools/publish-build/resource.yaml +6 -6
  467. package/library/tools/raycast/GUIDE.md +7 -0
  468. package/library/tools/read-file/GUIDE.md +10 -0
  469. package/library/tools/read-library/resource.yaml +5 -0
  470. package/library/tools/recent-events/GUIDE.md +7 -0
  471. package/library/tools/remove-node/GUIDE.md +3 -0
  472. package/library/tools/repeat-along/GUIDE.md +5 -0
  473. package/library/tools/replace-node/GUIDE.md +9 -0
  474. package/library/tools/replace-text/GUIDE.md +5 -0
  475. package/library/tools/run-editor-script/GUIDE.md +16 -0
  476. package/library/tools/run-script/GUIDE.md +30 -0
  477. package/library/tools/run-script/resource.yaml +6 -3
  478. package/library/tools/runtime-animate/GUIDE.md +7 -0
  479. package/library/tools/runtime-call/GUIDE.md +7 -0
  480. package/library/tools/runtime-set/GUIDE.md +9 -0
  481. package/library/tools/runtime-spawn/GUIDE.md +9 -0
  482. package/library/tools/save-scene/GUIDE.md +3 -0
  483. package/library/tools/scene-audit/GUIDE.md +29 -0
  484. package/library/tools/screenshot/GUIDE.md +17 -0
  485. package/library/tools/select-node/GUIDE.md +3 -0
  486. package/library/tools/set-prop/GUIDE.md +23 -0
  487. package/library/tools/set-resource-property/GUIDE.md +8 -0
  488. package/library/tools/shot-sheet/GUIDE.md +7 -0
  489. package/library/tools/snap-to-surface/GUIDE.md +17 -0
  490. package/library/tools/snapshot-diff/GUIDE.md +7 -0
  491. package/library/tools/starcast/GUIDE.md +12 -0
  492. package/library/tools/stop/GUIDE.md +3 -0
  493. package/library/tools/test-placement/GUIDE.md +7 -0
  494. package/library/tools/ui-actions/GUIDE.md +12 -0
  495. package/library/tools/ui-activate/GUIDE.md +11 -0
  496. package/library/tools/ui-screenshot/GUIDE.md +9 -0
  497. package/library/tools/ui-tree/GUIDE.md +10 -0
  498. package/library/tools/wait-for-event/GUIDE.md +11 -0
  499. package/library/tools/world-snapshot/GUIDE.md +9 -0
  500. package/library/tools/write-file/GUIDE.md +5 -0
  501. package/library/tools/zoom/GUIDE.md +5 -0
  502. package/package.json +8 -5
  503. package/registry/generated/counts.json +2 -2
  504. package/registry/generated/gemini-extension.json +6 -13
  505. package/registry/generated/index.json +482 -349
  506. package/registry/generated/marketplace.claude.json +2 -13
  507. package/registry/generated/plugin.claude-directory.json +168 -0
  508. package/registry/generated/plugin.claude.json +24 -22
  509. package/registry/generated/plugin.codex.json +18 -22
  510. package/registry/generated/plugin.cursor.json +8 -14
  511. package/registry/generated/plugin.factory.json +6 -13
  512. package/registry/generated/server.json +43 -0
  513. package/registry/generated/skills-index.md +121 -118
  514. package/registry/generated/skills-registry.json +167 -115
  515. package/registry/operations/fixtures/invalid-deprecated-without-replacement.json +60 -0
  516. package/registry/operations/fixtures/invalid-name.json +60 -0
  517. package/registry/operations/fixtures/invalid-publish-without-owner.json +82 -0
  518. package/registry/operations/fixtures/invalid-spend-without-estimate.json +42 -0
  519. package/registry/operations/fixtures/invalid-unknown-field.json +61 -0
  520. package/registry/operations/fixtures/valid-player-facing.json +82 -0
  521. package/registry/operations/fixtures/valid-read.json +60 -0
  522. package/registry/operations/fixtures/valid-spend.json +43 -0
  523. package/registry/operations/legacy-names.json +1241 -0
  524. package/registry/operations/public-catalog.json +33160 -0
  525. package/registry/schemas/operation.schema.json +318 -0
  526. package/registry/schemas/skill.schema.json +4 -0
  527. package/CLAUDE.md +0 -7
@@ -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": "eb3e16ae06109fa186a874cb20ad3931367cf21a4b8c14da7064a866c73794c8",
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": "660450198510e43d91b0320f3d4d38e9ad2bee4e42b85f5c6c2fe7995dd55e7a",
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": "0db0944304bb2ffceb2b208fc700823c9d81408c8ee27f925f676a03b3f0b3d0",
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": "57b0fba8a2e4eb383f75ab8d3d1063c1e1aca178031328dab09cb17764049d7d",
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": "de556590223a42b9ec44ee9d3461cc47ef45ce9098508000e5b849d96d4e03dd",
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": "a77ed069c8772941291f9feafce5bbc98ba06c0ae98b62ea905b8743608a660c",
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": "0d9dd27778a1df5251b7960039b762fd4d5fef0c97f27844c43df2ff1e0b7ade",
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": "1e265912a69e7ce6a37021b97f3d8db097f0a862162e63c0334e0295765b1ce4",
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": "1a8bfee83f63f5f3d1261cdb7c8093f099919553e278d1e5737a4f0bfab1331a",
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": "216e9aa163c10d50dc441b8e033fa85cc459ad5852ca9e7f3fa77523c996ed8c",
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": "d6102e0392bf5754853e6cb1552e44aac85e286376b4f21d728dcd691e3d9a17",
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": "361b17750d9b43b96bf7738f7506c2c5b352501749a6bcb2e99f615413741d4f",
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": "dffa85316e0eb3588384c9656339d7e634b9b09775cca201d546084929374209",
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": "36348aa7e7b557d1d958b0fe54013192d8ff85b37876cb1cd05986387b0f4441",
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": "b8ae94fbfb13c0c6831ebd6ea21c84f16b91c0ab83025fa51f2858c68c28f1de",
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": "0bfdf12bd54bc0d683228dd41325a96f64c32f8348e4640848d42f1158da0565",
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": "a296885a09e7fe2bbbb94d7f99cb8a6dcaa180dc048ebe361877625977d1c57e",
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": "ec848c27dbb10c02dd0e1c027b33902088fc65e699a4b141911b06335cfe8581",
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": "ae5548277796e5feec36b997ad6fab7da25f5c5181c507721ba48cf6c1d3e9b8",
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": "84a06de1aaf6a4f4a67dec2e85ec5e1ca7352100fb4b37f125874b0a43b92c40",
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": "38717a647fbc19bff611bdff9d668a1463664e96f2c858f02fad60ec995c39d0",
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": "e6fbf5b85bcdc43a3d6045d501a6f7d360d18ddf2a6bbf4aa7bb51809755939a",
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.1",
1242
+ "content_hash": "26233b708f6aa93cd92a678703dac9123e1b52ff918b002c0d8d2d47b16cd359",
1243
+ "summary": "Take a 3D map from concept art to a shippable level: questions for the user, owned lanes, render checks, 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": "8576c9f10068cb1a2cd6a2ea65241fc6aab18da96ab35886d3676e3c22d20bcd",
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": "7cbe19eb8e8b5292dce7c5fdf144614a4623b8cd5aee4fb189cb89c874596b2b",
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": "6de5044dec2a5dbbe65ea8d806aaedf068ff0640af1070f668410108fb46e247",
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": "3905d22b2a3c5c5797c62115595b36a5523a605c2b072c692f687f5a4e3865a0",
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": "8cd3a0c3c20da73089e316282d1d196faf91548c574a6ae578ff628e15f7213e",
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": "feda92d30082eecf2bafc99fe9ed3f12a4d3c4641fd2790743bf93f9a01d3b57",
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": "154d532a9ce06054c5b94bd397d764ea1df03f737d624e086dffd76d06b2ef31",
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": "b9a869a03c2ece3c93760dd4942877e1aeddcc7956928ee0691d45b2c2ca37d0",
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": "5b3e5edd76f3ddf23e0ef212e36112395ca4fef3c34ae6edf7741570ed3a5e7b",
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": "cd80ecea8eb678c7dbeb9974593a437cf9a08cd4b70311160a346c3ed9c1cb42",
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": "ebe9681789849e01a532238f84e1b5e7d69ace7a37bd367c94b3ddd62d931d8a",
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": "89df344f0c3dd785a1d83aebc88b1632c3f6d20026d9348860d42d6093aee986",
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": "d9738d002f0a4a7d9d0a46a95bee9e22cab84bf513d49961e4246e0efcc805c1",
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": "a705e85b9faa241e8e7aca820d958b44efbeaf2d3edf5fd7df1670b81be4694c",
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": "b60f03f6e1728e9313ae878130b20e2885efef2d1e167b98e2039a83bf46f2fe",
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": "f7341eba904892f09969d115e1674c712fe88a0bbdfef966f8c5ed5e9016a465",
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": "155e20e92f9cec0682833288cef673b2c45315a6efebfea6d6438a287528c5f6",
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": "49a9a42ea66f6694c7ac1816a54a5d227c8d5bcd4620071ddf00f8bf64ec60b2",
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": "c1cc8169bea90bcbf1f4533fe56bb6997545b0aeb5d49e0eab3ed8120df6bec1",
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": "c3b44387601015118a6d127267417c195437cc5ba5b9bc5b23ebb964e34075e0",
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": "bc1e9c8bc31d415ecef419004a6d0284e0ba8261360ba3da5f1d9c668f4bba9c",
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": "87056bb7362f5d2d2819a537950eb96d7b36cbe909ed238434936da54f294668",
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": "9f1d027d1261e825598d4cf5bb438d8f59f82c2075ac0812c3dec7925bd71798",
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": "d1ba8c2895e91430a890819ca002b42d269ae2f19c70e534eceeedcf7d4fcbbe",
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": "01e0602835fbc09aecd4f40127cdc16df0e3792ef996ff2a229f56a4baaea286",
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": "ad8067e4daf5b311fae710e4b7b858a266434b75f358e75d29f77690329d6d95",
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": "98804c0d7cb5635fe435a01779305d460b57d55d2b178ed50faae4b74d8bf273",
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": "970cdab60b248175b07b92371f65005c9dbed1e2dc474369ad98b33f1d8f41f4",
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": "6a393133f28f43766ab893cece221bbfe135b861671f9383d07ef68517160b0b",
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": "a6a4b2e2f258a1340021578b82aa1b6f2813d5cb9ad927df74ca682604c21f97",
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": "028d1b0144df1610cc0a4e92701a42055f499f54e0627d8ad8f79090be8b3c81",
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": "87d9a80da3b43b1be391ebb1b6e5a69211bfe96783834a10f97facbf829a984c",
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": "c1ddf1c7ef1fdebb7a74af98ac0371d46334f581b260f7080c6a2869e088d400",
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": "2c67caa0072285b2e05ae539adf3cd7e601786f0892ac6605869bee5786ae162",
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": "ecc5c2cbcc3574895f3cdd42527ef825669aef8026528e909c769a050784bb05",
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": "af663eb29d45aae6c2d9dbc9d2da7a16cc4aa0e4af35d0fbcc72a1a9ac678a6c",
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": "0e16974dbdecffe213324a7f2748cbf8c22a3cdec889baa26b0d44590ca336c6",
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": "19752cb0ccb1d3d93588f5639ffd0dbcd77c75268f5573eac79acd57711f2e7b",
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": "65b76f7bd230f618288deb1e33f87059d531802d1fff91a79a5d46e560fbc241",
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": "7898fd68b42aac1b6d95ab4c466f44016d1d6718e8e341a2b34bda31b72c9d2b",
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": "68840c53c23802a95a6f391780799a0a76e6ebfc9703aebbb0cb87861bef0164",
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": "a08083607ae38b959d9ec71d7f2212483f81b34e5f1a06b4ab67b462831fec48",
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": "ea7235870be8e92bc0db8ac35345513a9ab05dce13654ab127cea0395a099588",
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": "23ccd90ecf2635735f88a9c9bf770c4ad8f35625d53d0aaacc84eb4bfbdfa398",
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": "44ca3223b46aa38a3c8fc24cb01bda5258f84ed58b3b2ab6bc681b46b5cf8f87",
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": "040e35656b90f85b5509d4d7139010f75b16b33cbfe4100c437ee9b690061db3",
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": "7fe93b7166dbca7a296a0684d0c975bb0008f68fffd3dbc6750c251b56609b94",
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": "fcaf3998d88f594fd5277bd5e916d95ff8a1e8fbb9089fa09f775112ad1b3c11",
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": "14054f4aa77f0d0b18ba817e5b40454c7a7269a29f4ca3a85c51df4fa04d7ff0",
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": "7681e41ac534388e03509331f200e1c780a10306adfaa0742e0516bb0f5a7757",
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": "0fbebcf67975423b714607a16f220e84ae88ccbad6cac69a535035c09d1aa1e5",
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": "c186909620b78c13d0df3ea13b7889739b185e743881df25df34e7fe2645a137",
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": "6010d755d9bbe5b003885e795906fd872c7b76cff93762deff4a54a4aeae3c0e",
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": "45b646f2e8a79d9ac9304304bd61308c92fce5f07c3e8553688d04715fb962b5",
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": "9b4f34c590bf0db3c7d20c5201e8c5990849bcb3bb543bc76b8546ad99c6384c",
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": "cdabf5ec1ce60202e38ba0e85d7e8cdf0b937bfb649bfc16e9a99f0798a167cc",
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": "6413a3263f0287fb655ac3e65fcb8807421f113735f726084419cf5c059d4b4a",
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,11 +3813,93 @@
3763
3813
  "status": "preview",
3764
3814
  "recommended": true
3765
3815
  },
3816
+ {
3817
+ "id": "skill/summer-assets",
3818
+ "kind": "skill",
3819
+ "version": "1.0.1",
3820
+ "content_hash": "2a52ea8260720b3aa81d30dc29439e285afd5ff41592334b957ab4ffbb1f1807",
3821
+ "summary": "Make game assets with Summer, no Summer Engine: find, generate and download 3D models, images, audio and video for any engine or 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
+ },
3860
+ {
3861
+ "id": "skill/summer-cli",
3862
+ "kind": "skill",
3863
+ "version": "1.0.1",
3864
+ "content_hash": "13ce5f864eaa9e209e1d841a0cd3b571c1518971e8029d88bbe36d3cad200673",
3865
+ "summary": "Summer as shell commands, no MCP: sign in, find and run operations, follow jobs, save files, drive the engine.",
3866
+ "use_when": [
3867
+ "the session has no summer_* MCP tools, or Summer was set up with summer setup <agent> --cli",
3868
+ "running a Summer operation, a generation or an engine change from a shell, a script or CI",
3869
+ "a skill names an MCP tool or an operation and you need the summer command that runs it"
3870
+ ],
3871
+ "facets": {
3872
+ "lifecycle": [
3873
+ "build"
3874
+ ],
3875
+ "domains": [
3876
+ "agent-workflow",
3877
+ "assets",
3878
+ "tools"
3879
+ ],
3880
+ "modalities": [
3881
+ "docs"
3882
+ ]
3883
+ },
3884
+ "related": {
3885
+ "tools": [
3886
+ "tool/search-library",
3887
+ "tool/read-library"
3888
+ ],
3889
+ "skills": [
3890
+ "skill/using-summer",
3891
+ "skill/summer-assets",
3892
+ "skill/scene-scripting"
3893
+ ]
3894
+ },
3895
+ "status": "preview",
3896
+ "recommended": true
3897
+ },
3766
3898
  {
3767
3899
  "id": "skill/summer-friends",
3768
3900
  "kind": "skill",
3769
3901
  "version": "1.0.0",
3770
- "content_hash": "0d69cc6dca64d6b1bfc50181fe6c562278ed3d202ab8b776b63324ddd3b128b7",
3902
+ "content_hash": "5d8105c401ecd3a5059e04b741a99a6fbee07b403ee493266ecc0b3ac94b2eb9",
3771
3903
  "summary": "Summer friends in a game: a consented friends list, profile and chat screens, direct messages. Hosted only.",
3772
3904
  "use_when": [
3773
3905
  "showing a friends list, who is online or which friends are playing this Summer game",
@@ -3804,7 +3936,7 @@
3804
3936
  "id": "skill/summer-leaderboards",
3805
3937
  "kind": "skill",
3806
3938
  "version": "1.0.0",
3807
- "content_hash": "a1e7ea9fd450e9cd07194b8e48c41a625e01d3b7639b6aa43bb6b329637f3d28",
3939
+ "content_hash": "044ad02634195fafe230b24f6f3f965931b34b9d58ab241b3394daf78fd7a823",
3808
3940
  "summary": "Leaderboards in a Summer game: queue ratings from matches, and Game rankings your authority scores.",
3809
3941
  "use_when": [
3810
3942
  "the user wants a leaderboard, high scores, ranks, MMR, Elo or a 'top 50' screen in a Summer game",
@@ -3843,7 +3975,7 @@
3843
3975
  "id": "skill/summer-match-results",
3844
3976
  "kind": "skill",
3845
3977
  "version": "1.0.0",
3846
- "content_hash": "7b73c702f1101fa7ecaa6316a36c974ee6b46946b3d3abcaec875f7e8f884fc4",
3978
+ "content_hash": "afadaaac12795d1ab623e8dc056418a7fda01b7ddd1dd0d6ce26198de672eb2a",
3847
3979
  "summary": "End a Summer match: report each player's win, loss or draw, show results on clients, then close the World.",
3848
3980
  "use_when": [
3849
3981
  "a multiplayer Summer game needs a winner, a game-over screen or a match that ends",
@@ -3884,7 +4016,7 @@
3884
4016
  "id": "skill/summer-matchmaking",
3885
4017
  "kind": "skill",
3886
4018
  "version": "1.0.0",
3887
- "content_hash": "087d6f4ba517fa8edf94bc68bd4f415ce6cbdb9993643f42003e0b24803a34b9",
4019
+ "content_hash": "f4bce95e8a5a694d55fe6ce7bfa10de2ee3321004ffaaa61de89b9435041a9d5",
3888
4020
  "summary": "Get players into matches with Summer matchmaking: queues, teams, accept prompts, join progress and failures.",
3889
4021
  "use_when": [
3890
4022
  "the user wants matchmaking, a lobby, a play button, quick play, ranked or casual modes in a multiplayer Summer game",
@@ -3925,7 +4057,7 @@
3925
4057
  "id": "skill/summer-parties",
3926
4058
  "kind": "skill",
3927
4059
  "version": "1.0.0",
3928
- "content_hash": "3e306760574435b38fa0d0aefddf9569ea733a1dce0f279bed1c1e7fc072a7c8",
4060
+ "content_hash": "1d245b0c95f98d56e8529a02c86b82fafa997ebe589b46cddd0d95f185918b84",
3929
4061
  "summary": "Let a Summer party play together: the leader presses Play, members follow into the same match. Hosted only.",
3930
4062
  "use_when": [
3931
4063
  "friends in a Summer party should land in the same multiplayer match: party play, play with friends, squad up",
@@ -3964,7 +4096,7 @@
3964
4096
  "id": "skill/summer-player-data",
3965
4097
  "kind": "skill",
3966
4098
  "version": "1.0.0",
3967
- "content_hash": "1ab06669aab3595e1e69ebf92faad5f84d75a204d894ee927f4512683b085a82",
4099
+ "content_hash": "22c59fd1e62f5dc4c3d3483e90d12bd9d71b906cac10ebcf8960d3db9c6b04e6",
3968
4100
  "summary": "Save a player's progress so it follows them to every match: authority load and commit, autosave, safe retries.",
3969
4101
  "use_when": [
3970
4102
  "saving player progress, coins, unlocks, levels or settings in a multiplayer Summer game so they persist between matches",
@@ -4003,7 +4135,7 @@
4003
4135
  "id": "skill/summer-store",
4004
4136
  "kind": "skill",
4005
4137
  "version": "1.0.0",
4006
- "content_hash": "39259d53de1975ddfa53322c6237c05117e01acd3a105af69e01e4d708c4ea71",
4138
+ "content_hash": "47ad07c4f3f550e82111423b87020bc1e5edcbe8da255eb4640baa125cb74c04",
4007
4139
  "summary": "Sell Summer items for Sparks in a multiplayer game: shop, checkout, owned items, authority entitlement checks.",
4008
4140
  "use_when": [
4009
4141
  "adding a shop, in-game purchases, cosmetics or skins sold for Sparks to a Summer game",
@@ -4041,7 +4173,7 @@
4041
4173
  "id": "skill/summer-world-chat",
4042
4174
  "kind": "skill",
4043
4175
  "version": "1.0.0",
4044
- "content_hash": "f85eac6609cf4ab572da5a98c8e563f452c8f84c784a099850081e59815afdfe",
4176
+ "content_hash": "498c7d2840d8654dcfdfa8c33ae1063d16eaaa6191f139216eaa0b06594ec58c",
4045
4177
  "summary": "Add match chat to a Summer game: one World channel shared by everyone in the match. Hosted only.",
4046
4178
  "use_when": [
4047
4179
  "adding in-game text chat, match chat or a chat box to a multiplayer Summer game",
@@ -4080,7 +4212,7 @@
4080
4212
  "id": "skill/summer-world-saves",
4081
4213
  "kind": "skill",
4082
4214
  "version": "1.0.0",
4083
- "content_hash": "9c4125ed2113bd7b1a67eb7146493e8f7fd332a66853dc1552092bd2709bfbb8",
4215
+ "content_hash": "244b9827a702fb2130329976cf9efe1e7b870a562536f92e1bc3f7f7cea4ed26",
4084
4216
  "summary": "Keep a persistent Summer World between restarts: checkpoint saves, restore before join, the final save.",
4085
4217
  "use_when": [
4086
4218
  "building a persistent World, shared base, farm or realm in a Summer game that must survive server restarts",
@@ -4118,8 +4250,8 @@
4118
4250
  "id": "skill/text-to-motion",
4119
4251
  "kind": "skill",
4120
4252
  "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.",
4253
+ "content_hash": "a2d738f32592b62f8db1cb9ca6bb4db5de0e7f0ede5a04d78f12b9669b7292f7",
4254
+ "summary": "Make custom 2-second animation clips from text on the user's own rigged models: people, animals, props.",
4123
4255
  "use_when": [
4124
4256
  "a custom action the curated motion library lacks — nod, bow, shrug, wave with a specific arm, an emotional gesture",
4125
4257
  "animating a non-humanoid rig — a talking flower, animal, creature, turret or prop",
@@ -4162,8 +4294,8 @@
4162
4294
  "id": "skill/tileable-texture",
4163
4295
  "kind": "skill",
4164
4296
  "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.",
4297
+ "content_hash": "3765d68d96b1d7eba43eb7331fee73d92f6f3e4048feeb9b33d0cbf6044d2d04",
4298
+ "summary": "Generate a seamless tileable texture for walls, floors or terrain, wired as a StandardMaterial3D albedo.",
4167
4299
  "use_when": [
4168
4300
  "generating a seamless tileable texture for walls, floors, terrain, or ceilings — a square tile that repeats cleanly on all four edges",
4169
4301
  "a wall, floor, or terrain material shows visible seams or repetition and needs a texture that tiles cleanly"
@@ -4200,8 +4332,8 @@
4200
4332
  "id": "skill/trailer-shot",
4201
4333
  "kind": "skill",
4202
4334
  "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.",
4335
+ "content_hash": "209654629eb54452128b954e07273623a67ba06b425b5db56fe259d9324d3d54",
4336
+ "summary": "Generate trailer footage: slow-mo combat, establishing shots, hero beats, splash screens, 5-10 seconds.",
4205
4337
  "use_when": [
4206
4338
  "generating marketing or trailer footage — slow-mo combat, dramatic establishing shots, hero beats, splash screens, pitch-deck B-roll",
4207
4339
  "producing a store page, pitch deck, or social clip that shows the game at its most dramatic in seconds"
@@ -4234,8 +4366,8 @@
4234
4366
  "id": "skill/tune-performance",
4235
4367
  "kind": "skill",
4236
4368
  "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.",
4369
+ "content_hash": "65f53955a2a9e7aba14bd0d9bae525f89a4842fba06eff7c58913848b1cbba15",
4370
+ "summary": "Profile a slow game, find rendering, physics or script hotspots, and propose fixes with expected gains.",
4239
4371
  "use_when": [
4240
4372
  "the game is slow, drops framerate, stutters, takes forever to start, or runs poorly on specific hardware",
4241
4373
  "fps drops or stutter when many units, projectiles, or particles spawn at once and the hotspot is unknown"
@@ -4272,8 +4404,8 @@
4272
4404
  "id": "skill/ui-basics",
4273
4405
  "kind": "skill",
4274
4406
  "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.",
4407
+ "content_hash": "2433f6a363cf3d7b422658170fe08a95daf4c01bcaaf337305cede21b7c64c7e",
4408
+ "summary": "Build UI: HUDs, menus, health bars, dialogue boxes, Control trees, anchors, containers and themes.",
4277
4409
  "use_when": [
4278
4410
  "building Summer Engine UI: HUDs, main menus, pause menus, health bars, progress bars, dialogue boxes, or any Control-node tree",
4279
4411
  "laying out a pause menu, settings screen, or inventory panel with anchors and containers so it stays responsive",
@@ -4302,8 +4434,8 @@
4302
4434
  "id": "skill/ui-graphics",
4303
4435
  "kind": "skill",
4304
4436
  "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.",
4437
+ "content_hash": "d253cdc45e87125f196c62e96f17cbaae66cc70e6908e396c5d3edc1009a21bf",
4438
+ "summary": "Generate game UI art (icons, buttons, panels, frames, HUD widgets) flat, on a transparent background.",
4307
4439
  "use_when": [
4308
4440
  "generating UI elements — icons, buttons, panels, frames, HUD widgets, badges — in flat-design, transparent-background game-UI style",
4309
4441
  "a HUD still uses placeholder icons, buttons, or panels and needs consistent flat-design art"
@@ -4338,8 +4470,8 @@
4338
4470
  "id": "skill/use-widget-asset",
4339
4471
  "kind": "skill",
4340
4472
  "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.",
4473
+ "content_hash": "1075e1bedb590fd748da6ea2e710c6a3dc49a024c1816843798877630e4f5853",
4474
+ "summary": "Wire a widget slice from an asset pack (panel, button, bar, toggle) into NinePatchRect or TextureRect.",
4343
4475
  "use_when": [
4344
4476
  "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
4477
  "turning a panel, button, slider, or bar slice from a generated UI kit into a working NinePatchRect or TextureProgressBar"
@@ -4374,9 +4506,9 @@
4374
4506
  {
4375
4507
  "id": "skill/using-summer",
4376
4508
  "kind": "skill",
4377
- "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.",
4509
+ "version": "1.0.6",
4510
+ "content_hash": "e9c422cd1f1589c622b4c5fd04786313351ca4e9c6eda0bfe87ffbb5b46431e7",
4511
+ "summary": "Session bootstrap: how to find and use Summer skills and the summer-engine MCP before any response.",
4380
4512
  "use_when": [
4381
4513
  "starting any conversation in a Summer Engine project",
4382
4514
  "deciding which Summer skill or summer_* tool applies before answering a game-development request"
@@ -4412,7 +4544,8 @@
4412
4544
  "skill/brainstorm-game",
4413
4545
  "skill/play",
4414
4546
  "skill/scene-composition",
4415
- "skill/gdscript-patterns"
4547
+ "skill/gdscript-patterns",
4548
+ "skill/summer-cli"
4416
4549
  ]
4417
4550
  },
4418
4551
  "status": "stable",
@@ -4422,8 +4555,8 @@
4422
4555
  "id": "skill/vehicle-model",
4423
4556
  "kind": "skill",
4424
4557
  "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.",
4558
+ "content_hash": "6d09ee5aa053b19eaa757bfbc140921450a29fe874ebc745e81d16cf4e85e313",
4559
+ "summary": "Generate a hard-surface vehicle (car, spaceship, mech, boat, tank) as a static or VehicleBody3D mesh.",
4427
4560
  "use_when": [
4428
4561
  "generating a hard-surface vehicle — car, motorcycle, spaceship, hover bike, boat, mech, tank, helicopter",
4429
4562
  "a racing, flying, or combat game needs a hard-surface vehicle mesh as a VehicleBody3D or MeshInstance3D"
@@ -4463,8 +4596,8 @@
4463
4596
  "id": "skill/verification-before-completion",
4464
4597
  "kind": "skill",
4465
4598
  "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.",
4599
+ "content_hash": "b444a21783373c546062acb140c6234b42361c4576f6acb73d594e9288465d00",
4600
+ "summary": "Run verification and read its output before claiming work done, fixed or passing: evidence first.",
4468
4601
  "use_when": [
4469
4602
  "about to claim work is complete, fixed, or passing, before committing or creating PRs",
4470
4603
  "about to report a test, build, or fix as passing without having run the command and read its output"
@@ -4491,8 +4624,8 @@
4491
4624
  "id": "skill/verifying-scenes",
4492
4625
  "kind": "skill",
4493
4626
  "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.",
4627
+ "content_hash": "21b2654e9a2f325588a42da4ea8ca11197417be9afd45d2bb33c7042d9f4c7a5",
4628
+ "summary": "Prove scene work landed: snapshot, diff, screenshots, runtime reads, 3D audits, shot sheets and zooms.",
4496
4629
  "use_when": [
4497
4630
  "after any mutation batch, asset import, or lighting change, before claiming it worked",
4498
4631
  "during a playtest, to read live runtime state (spawned nodes, actual stats) without stopping the game",
@@ -4550,8 +4683,8 @@
4550
4683
  "id": "skill/vfx-dissolve",
4551
4684
  "kind": "skill",
4552
4685
  "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.",
4686
+ "content_hash": "bf3c0f798681093c006876d17bd5a336957063f0e3c36202d888e515f4af62f5",
4687
+ "summary": "Dissolve effect: a mesh burns away with a glowing edge, from a noise-threshold ShaderMaterial.",
4555
4688
  "use_when": [
4556
4689
  "authoring a dissolve effect — an object disintegrating with a glowing burning edge (disintegrate, burn away, vanish into ash)",
4557
4690
  "a defeated unit, teleport exit, or removed object should burn away with a glowing edge instead of vanishing"
@@ -4589,8 +4722,8 @@
4589
4722
  "id": "skill/vfx-fire",
4590
4723
  "kind": "skill",
4591
4724
  "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.",
4725
+ "content_hash": "16e579d659c004df902e5d84dfb90936b1ba2350f90bf2a598e6ed172415515b",
4726
+ "summary": "Fire effect: animated flames from GPUParticles3D, a particle shader and a noise color ramp.",
4594
4727
  "use_when": [
4595
4728
  "authoring a fire visual effect — torch, campfire, bonfire, flame, burning object, candle",
4596
4729
  "adding fire to props, hazards, or projectiles — torches, braziers, burning wreckage, a fireball or flame jet"
@@ -4630,8 +4763,8 @@
4630
4763
  "id": "skill/vfx-hit-spark",
4631
4764
  "kind": "skill",
4632
4765
  "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.",
4766
+ "content_hash": "f87bc67da97720d55ba7b35fa4775b798ce1313f74b76989cda267c7a092cee9",
4767
+ "summary": "Hit-spark effect: a one-shot burst of additive particles oriented to the surface, fired on impact.",
4635
4768
  "use_when": [
4636
4769
  "authoring a hit-spark effect — impact spark, bullet hit, sword clash, ricochet, sparks at a hit point",
4637
4770
  "melee hits, bullet impacts, or ricochets have no visual feedback at the contact point"
@@ -4670,8 +4803,8 @@
4670
4803
  "id": "skill/vfx-lightning",
4671
4804
  "kind": "skill",
4672
4805
  "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.",
4806
+ "content_hash": "46c22cf0f2f4e5917fb4ad1a904f56d91a5c47753ebf6e38f0ea776cbfa91c53",
4807
+ "summary": "Lightning bolt effect: a jagged procedural path with a glow shader, end sparks and screen shake.",
4675
4808
  "use_when": [
4676
4809
  "authoring a lightning bolt effect — chain lightning, electric attack, tesla coil, shock spell, energy beam",
4677
4810
  "a spell, weapon, or hazard needs a jagged electric arc with glow, endpoint sparks, and camera shake"
@@ -4709,8 +4842,8 @@
4709
4842
  "id": "skill/vfx-magic-glow",
4710
4843
  "kind": "skill",
4711
4844
  "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.",
4845
+ "content_hash": "a6abec9abbe1fcf611add624d9b43d2884ddb0712b1d51f27130217c06e736fc",
4846
+ "summary": "Magic-glow effect: a pulsing OmniLight3D, drifting additive motes and an optional emission shader.",
4714
4847
  "use_when": [
4715
4848
  "authoring a magic-glow effect — enchanted item, soul gem, pulsing aura, rune glow, magical orb, wisp",
4716
4849
  "an item, altar, or portal should read as magical or important with a pulsing light and drifting motes"
@@ -4749,8 +4882,8 @@
4749
4882
  "id": "skill/vfx-muzzle-flash",
4750
4883
  "kind": "skill",
4751
4884
  "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.",
4885
+ "content_hash": "18dcf2565414d6fceea86c995120381286c0cbca0463cab2f903a4f5c9bd5382",
4886
+ "summary": "Muzzle-flash effect: a one-shot ~80 ms burst at a gun barrel, from particles or a star-burst quad.",
4754
4887
  "use_when": [
4755
4888
  "authoring a muzzle-flash effect — gun fire, weapon flash, barrel flash, spell-cast burst at a hand",
4756
4889
  "a gun or spell-casting hand shoots with no visible flash at the barrel or palm"
@@ -4790,8 +4923,8 @@
4790
4923
  "id": "skill/vfx-smoke",
4791
4924
  "kind": "skill",
4792
4925
  "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.",
4926
+ "content_hash": "54677bee66aa6f2bbc1921808d393c746a5ccfbf74b19e98425d689455627cd8",
4927
+ "summary": "Smoke effect: a rising column or puff of soft particles with a noise and density falloff shader.",
4795
4928
  "use_when": [
4796
4929
  "authoring a smoke effect — smoke trail, puff, chimney smoke, steam, fog cloud, explosion smoke",
4797
4930
  "a chimney, campfire, explosion, or vent needs a rising smoke column or puff in a 3D scene"
@@ -4828,8 +4961,8 @@
4828
4961
  "id": "skill/vfx-water-ripple",
4829
4962
  "kind": "skill",
4830
4963
  "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.",
4964
+ "content_hash": "1c4f371367911426560dd885648df4ec02c7ba3f6be5de536343e4eabbb78ab2",
4965
+ "summary": "Water-ripple effect: animated normal-distortion ripples on a water plane or Decal, set off by impacts.",
4833
4966
  "use_when": [
4834
4967
  "authoring a water-ripple effect — raindrop ripples, splash ripples, footstep in a puddle, fish jumps",
4835
4968
  "rain, footsteps, or falling objects should disturb a water surface with spreading ripples"
@@ -4865,8 +4998,8 @@
4865
4998
  "id": "skill/voice-line",
4866
4999
  "kind": "skill",
4867
5000
  "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.",
5001
+ "content_hash": "d566b754f8461b8e0b392223bc1dc4c76fc5eaecc748eb53b00630aff712c5c2",
5002
+ "summary": "Generate voice lines (NPC barks, narrator, dialogue) with a character-to-voice choice and multi-line support.",
4870
5003
  "use_when": [
4871
5004
  "\"the NPC needs a greeting / a bark / a narrator intro read aloud\"",
4872
5005
  "giving a character a voice that fits their personality (gruff, cheerful, robotic)",
@@ -4895,8 +5028,8 @@
4895
5028
  "id": "skill/web-and-touch-input",
4896
5029
  "kind": "skill",
4897
5030
  "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.",
5031
+ "content_hash": "6631a099696b76bd970a351fd57e2779add5c6ed46a4723e03ed82c955837e94",
5032
+ "summary": "Browser and phone input: the first-click rule for sound and mouse capture, focus, touch buttons, a stick.",
4900
5033
  "use_when": [
4901
5034
  "the game plays in the browser and sound, mouse capture or keys do not work until something is clicked",
4902
5035
  "the game should be playable on a phone or tablet with touch controls",
@@ -4932,8 +5065,8 @@
4932
5065
  "id": "skill/web-compatibility-look",
4933
5066
  "kind": "skill",
4934
5067
  "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.",
5068
+ "content_hash": "d17d77e620aafef7aae10dba88ad803a0325f35681fc48822a7bcffc798c94ea",
5069
+ "summary": "Make a browser game look high-end in the Compatibility renderer (WebGL 2): what works, recipes, speed.",
4937
5070
  "use_when": [
4938
5071
  "the game plays in the browser or is exported for the web and must look finished",
4939
5072
  "the look is flat, grey or default in the web preview, or a Forward+ feature does nothing there",
@@ -4972,8 +5105,8 @@
4972
5105
  "id": "skill/world-building-3d",
4973
5106
  "kind": "skill",
4974
5107
  "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.",
5108
+ "content_hash": "1181c862d9561fb79ff94cd64bec349a74de1103c3dd13bfe2d704d6bbbf0975",
5109
+ "summary": "Compose, ground and space 3D scenes with Summer's four spatial tools, one geometric decision at a time.",
4977
5110
  "use_when": [
4978
5111
  "placing or grounding props on floors, shelves, ramps, or tables without hand-tuning transforms",
4979
5112
  "aligning or evenly spacing a group of 3D objects along one world axis",
@@ -5049,7 +5182,7 @@
5049
5182
  "id": "skill/writing-skills",
5050
5183
  "kind": "skill",
5051
5184
  "version": "1.0.3",
5052
- "content_hash": "2669bbbf0d912f86deb9c03fee04f53d80f2d69cebb5e508039c18225f72f30f",
5185
+ "content_hash": "1cbc07d632d281f725f471de3f1d63b28c10b95e862b6d929fce4f985ef60713",
5053
5186
  "summary": "Create, edit, and verify agent skills — format, structure, testing with subagents, and best practices.",
5054
5187
  "use_when": [
5055
5188
  "creating new skills, editing existing skills, or verifying skills work before deployment",
@@ -5531,7 +5664,7 @@
5531
5664
  "id": "tool/add-node",
5532
5665
  "kind": "tool",
5533
5666
  "version": "1.0.2",
5534
- "content_hash": "7e0cfd6870d89b063d76ae5231852430dbf958f64a658d3fb6d13db2d95c8d50",
5667
+ "content_hash": "d9ca4203d9ccc0f041d578b89c2da644b89eff4c5782692c5fb611c51edc5016",
5535
5668
  "summary": "Add a node of any Godot type to an exact scene, which does not need to be the active editor tab.",
5536
5669
  "use_when": [
5537
5670
  "building out scene structure node by node",
@@ -5565,7 +5698,7 @@
5565
5698
  "id": "tool/align-distribute-3d",
5566
5699
  "kind": "tool",
5567
5700
  "version": "1.0.0",
5568
- "content_hash": "9323fc85f7fc846bef217f369f417d048a408767bbe2173613f09b0120d3bb02",
5701
+ "content_hash": "61bfc19c91dbe8b2e91e49caee6df5ca4794abe5a621a0a1d02a9ad6fbe120c4",
5569
5702
  "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
5703
  "use_when": [
5571
5704
  "lining up props, stalls, pillars, or lights along one axis",
@@ -5658,7 +5791,7 @@
5658
5791
  "id": "tool/app-call",
5659
5792
  "kind": "tool",
5660
5793
  "version": "1.0.0",
5661
- "content_hash": "489fb7d31ffe77b2ec9e403b7c51f2c2f1e486274e7e488797490209bab57ab2",
5794
+ "content_hash": "590d3d36a5e234a39269e104fcc5cb7ad0a2a0ce940a56f11af28e1aef566712",
5662
5795
  "summary": "Run one of a Summer App's agent tools inside the person's open app.",
5663
5796
  "use_when": [
5664
5797
  "\"nerf the bow using the balance formula in our app\"",
@@ -5887,7 +6020,7 @@
5887
6020
  "id": "tool/app-guide",
5888
6021
  "kind": "tool",
5889
6022
  "version": "1.0.0",
5890
- "content_hash": "4648e830cef1a162e9df85ab0423dc4fbe099409682d375e325dde085521e5e3",
6023
+ "content_hash": "f8c8dad7c576c3b8bdd4d9feaade4e7ce0dabf9627dfcf54396a81351d66f820",
5891
6024
  "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
6025
  "use_when": [
5893
6026
  "before building or changing a Summer App",
@@ -5964,7 +6097,7 @@
5964
6097
  "id": "tool/app-page",
5965
6098
  "kind": "tool",
5966
6099
  "version": "1.0.0",
5967
- "content_hash": "4e3a2feb1c87ca57cebded9808fb7da24e46ca66c058b29ed1e3f2f15a07592e",
6100
+ "content_hash": "bf782b7bfd2f8e97f4e2734b9dabdf7819694a84141aabae9427bd9e9093fd80",
5968
6101
  "summary": "Read or use the fields and buttons an open Summer App declared (fill values, press actions).",
5969
6102
  "use_when": [
5970
6103
  "\"set the budget to 60 in the balance app\"",
@@ -6078,10 +6211,10 @@
6078
6211
  "id": "tool/app-screenshot",
6079
6212
  "kind": "tool",
6080
6213
  "version": "1.0.0",
6081
- "content_hash": "e2c089afcb531ea86b85ef8a3db5c99db23a7ada23a3056085f7d7e048df6fe6",
6214
+ "content_hash": "4a32498bfb47bf69c7b67c8e9c90ae409d33c5deceddf0217cf6712eb4e300e0",
6082
6215
  "summary": "See a Summer App without the person - a headless, read-only render (PNG) with its console, errors, refused calls and declared page.",
6083
6216
  "use_when": [
6084
- "right after every summer_app_publish, to check the app renders with real data",
6217
+ "right after every apps.publish, to check the app renders with real data",
6085
6218
  "\"does my app look right on a phone / in dark mode\"",
6086
6219
  "finding why an app shows nothing (SDK not connected, script errors)"
6087
6220
  ],
@@ -6118,10 +6251,10 @@
6118
6251
  "id": "tool/app-tools",
6119
6252
  "kind": "tool",
6120
6253
  "version": "1.0.0",
6121
- "content_hash": "f9fda7b5271107ff4c1a057749fb2c213b50b187506b38f43a994794abb0d5a5",
6254
+ "content_hash": "86ed720b987f72a0dc3ececdf9c3039ef7a898dc34b5327fafb860df463a73e5",
6122
6255
  "summary": "List the agent tools a Summer App declares.",
6123
6256
  "use_when": [
6124
- "before calling app logic with summer_app_call",
6257
+ "before calling app logic with apps.call",
6125
6258
  "\"what can our balance app do for me\""
6126
6259
  ],
6127
6260
  "facets": {
@@ -6195,7 +6328,7 @@
6195
6328
  "id": "tool/attach-to-surface",
6196
6329
  "kind": "tool",
6197
6330
  "version": "1.0.0",
6198
- "content_hash": "e2207bbdab1a86f499382d89314fc48ea501080d814f15ffdfb9d06b47f047db",
6331
+ "content_hash": "2909a46fb55a7a64373a6a7464e5f97fbbd2a68c0a8ba0c1803134effad273ed",
6199
6332
  "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
6333
  "use_when": [
6201
6334
  "mounting a downpipe, gutter, lamp, AC unit, sign or fire escape on a facade",
@@ -6245,7 +6378,7 @@
6245
6378
  "id": "tool/batch",
6246
6379
  "kind": "tool",
6247
6380
  "version": "1.1.0",
6248
- "content_hash": "ec6fa446a214a15c5562061ba0f39072f698ea69243e4326e4931683bc62f286",
6381
+ "content_hash": "0ba437873ed75942b3ac5199b2dcc4c2b0bbd73f015b38414fa4106b5f995ba3",
6249
6382
  "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
6383
  "use_when": [
6251
6384
  "multi-node builds that should undo as one step (no single-only ops in the list)",
@@ -6279,7 +6412,7 @@
6279
6412
  "id": "tool/camera-bookmark",
6280
6413
  "kind": "tool",
6281
6414
  "version": "1.0.0",
6282
- "content_hash": "42c4dfe31c6634c1b583a8e831a040d3d4b5b6bbdfe97ed71a2d7810a5b39891",
6415
+ "content_hash": "fd351b49f70ac366fb61f4f4de7d8a32f1e9badbf0175cc19e4bc8a238398d10",
6283
6416
  "summary": "Save, list, or delete named camera viewpoints stored in the project, so before/after screenshots are taken from exactly the same pose.",
6284
6417
  "use_when": [
6285
6418
  "\"save this camera angle\" / \"remember this viewpoint\" so later screenshots line up with it",
@@ -6326,14 +6459,14 @@
6326
6459
  {
6327
6460
  "id": "tool/capture-gameplay",
6328
6461
  "kind": "tool",
6329
- "version": "1.0.0",
6330
- "content_hash": "7195fee358600665d2b1e0ec40eeb68a7c517e775f5cc4a366259bceba07cd03",
6462
+ "version": "1.0.1",
6463
+ "content_hash": "6e650359c7674783ad39e7fd1c75c856be4dd7d5da6215e8b86c7bd8e517be07",
6331
6464
  "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
6465
  "use_when": [
6333
6466
  "\"take gameplay screenshots for my store page\"",
6334
6467
  "\"I need screenshots but the editor is not open\"",
6335
6468
  "\"capture a 1920x1080 frame of my game\"",
6336
- "collecting real gameplay screenshots for summer_store_set_art desktop.screenshots or mobile.screenshots",
6469
+ "collecting real gameplay screenshots for store.set_art desktop.screenshots or mobile.screenshots",
6337
6470
  "every capture shows the title screen — pass the game's flags in args or steps like press Play"
6338
6471
  ],
6339
6472
  "facets": {
@@ -6349,7 +6482,7 @@
6349
6482
  "compatibility": {
6350
6483
  "engine": ">=4.6"
6351
6484
  },
6352
- "status": "preview",
6485
+ "status": "stable",
6353
6486
  "mcp_tool_name": "summer_capture_gameplay",
6354
6487
  "remote": true,
6355
6488
  "authority": {
@@ -6364,10 +6497,10 @@
6364
6497
  "id": "tool/check-job",
6365
6498
  "kind": "tool",
6366
6499
  "version": "1.0.2",
6367
- "content_hash": "a17e889099781c54902facf3abcbbdd8c10c0018333fdceb40d48f24dc01f183",
6500
+ "content_hash": "6212245eb252683666471ab80d880eedecfff561525f240be4af1311052b5340",
6368
6501
  "summary": "Check the status of an async generation job by id.",
6369
6502
  "use_when": [
6370
- "a generation ran without waiting, or timed out, and needs re-checking",
6503
+ "a generation timed out and needs re-checking",
6371
6504
  "\"is my 3D model / video done yet?\"",
6372
6505
  "a generate_* call returned a job id instead of a finished asset"
6373
6506
  ],
@@ -6398,7 +6531,7 @@
6398
6531
  "id": "tool/clear-console",
6399
6532
  "kind": "tool",
6400
6533
  "version": "1.0.2",
6401
- "content_hash": "5d96c1b758bcb0521a2ba2f291fc5b3929487df9222b735238eb97d7a645077c",
6534
+ "content_hash": "9c9505a048c77cb19991a7e736c343190909f584f4a875f6b814e871460bb815",
6402
6535
  "summary": "Clear the editor's Output panel for a clean slate before running the game.",
6403
6536
  "use_when": [
6404
6537
  "before a play session whose console output you want isolated",
@@ -6432,7 +6565,7 @@
6432
6565
  "id": "tool/connect-ports",
6433
6566
  "kind": "tool",
6434
6567
  "version": "1.0.0",
6435
- "content_hash": "d3423ce431ff8bde3f0f288d5b4bf47788fca541694390168f0b31baff40a45a",
6568
+ "content_hash": "1018251fb6ed05da7397988cde9ee05498601c48331c0d765b3abb645a85cac1",
6436
6569
  "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
6570
  "use_when": [
6438
6571
  "joining a pipe, duct or gutter section end to end with the previous one",
@@ -6480,7 +6613,7 @@
6480
6613
  "id": "tool/connect-signal",
6481
6614
  "kind": "tool",
6482
6615
  "version": "1.1.0",
6483
- "content_hash": "d37c9147743f97b9cd6f3acd1e287ef2af7df20b273c48dca05bb6cb427d236f",
6616
+ "content_hash": "bd6c59df3479e5d60c0dac5f61dee6cde3da59054122add68bd344ffe4bc167e",
6484
6617
  "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
6618
  "use_when": [
6486
6619
  "wiring events like body_entered, pressed, or timeout",
@@ -6514,7 +6647,7 @@
6514
6647
  "id": "tool/create-debug-report",
6515
6648
  "kind": "tool",
6516
6649
  "version": "1.0.2",
6517
- "content_hash": "b950bca3f72f732d102142d9e233a4b27ffac33dd8a75515f0e71648742405a8",
6650
+ "content_hash": "003ad4650cc4055b187ce8ee77a98c2a1da72a5b74fb2e0faf89fbf6ab6a4094",
6518
6651
  "summary": "Create a support-ready Markdown debug report: doctor checks, engine health, diagnostics, console, and debugger output.",
6519
6652
  "use_when": [
6520
6653
  "the user wants to send Summer a bug report",
@@ -6548,7 +6681,7 @@
6548
6681
  "id": "tool/create-scene",
6549
6682
  "kind": "tool",
6550
6683
  "version": "1.0.2",
6551
- "content_hash": "cfb55fc92129fca8a2c50819242e2961f69542773822118aa04c0aa599f13dae",
6684
+ "content_hash": "8a8d28ab4feebc5cbbc9169f6320c64688ab74f950d4ad4c3fc7c089288bf21d",
6552
6685
  "summary": "Create a new minimal .tscn on disk with a create-only guard and read-back verification; never touches the open scene.",
6553
6686
  "use_when": [
6554
6687
  "starting a new level, prefab, or UI scene file",
@@ -6582,7 +6715,7 @@
6582
6715
  "id": "tool/debug-views",
6583
6716
  "kind": "tool",
6584
6717
  "version": "1.0.0",
6585
- "content_hash": "deb767453ff63dcacf4b92208baa69b49b1b15b7d3d557b1c23f839a3d45c9f8",
6718
+ "content_hash": "0fcb49a5d34ec6e1f97837a9f10c217dc5b65de667fb3e4e68484ab9b36e8f2e",
6586
6719
  "summary": "One pose as a grid of beauty, lighting-only, unshaded/albedo, world normals, overdraw and wireframe views.",
6587
6720
  "use_when": [
6588
6721
  "understanding WHY a shot reads badly: light direction and pools, texture/value balance, normal seams, overdraw hot spots, triangle density",
@@ -6631,7 +6764,7 @@
6631
6764
  "id": "tool/enable-plugin",
6632
6765
  "kind": "tool",
6633
6766
  "version": "1.0.0",
6634
- "content_hash": "e4785bfe2cf063958bc9c665873f0c38d4079a5127d46dd9310957ffcbfd20c4",
6767
+ "content_hash": "aaad358162df6f1c206ae1b6e80694f35551544074250120f3afb3ae2889873a",
6635
6768
  "summary": "Enable an editor plugin (res://addons/<name>/) and report the real load result, or that an older engine only queued it.",
6636
6769
  "use_when": [
6637
6770
  "an agent wrote or installed an editor plugin and needs it running",
@@ -6669,8 +6802,8 @@
6669
6802
  {
6670
6803
  "id": "tool/export-game",
6671
6804
  "kind": "tool",
6672
- "version": "1.0.0",
6673
- "content_hash": "96efe498dc6c5976b482c00828c770975bb77e4c03a0df4e5f3208e8f0013e95",
6805
+ "version": "1.0.1",
6806
+ "content_hash": "065d9069434d9eda25b7a69594371c52502320adf6cc4caa139fae56b9d9b480",
6674
6807
  "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
6808
  "use_when": [
6676
6809
  "\"export my game for summer.games\"",
@@ -6678,7 +6811,7 @@
6678
6811
  "\"export my game for iPhone and Android on Summer Games\"",
6679
6812
  "\"make a web build of my game for summer.games\"",
6680
6813
  "\"export a Mac or Windows download for my store page\"",
6681
- "preparing the bundle that summer_publish_build uploads"
6814
+ "preparing the bundle that store.upload_file uploads"
6682
6815
  ],
6683
6816
  "facets": {
6684
6817
  "lifecycle": [
@@ -6693,7 +6826,7 @@
6693
6826
  "compatibility": {
6694
6827
  "engine": ">=4.6"
6695
6828
  },
6696
- "status": "preview",
6829
+ "status": "stable",
6697
6830
  "mcp_tool_name": "summer_export_game",
6698
6831
  "remote": true,
6699
6832
  "authority": {
@@ -6708,7 +6841,7 @@
6708
6841
  "id": "tool/export-templates",
6709
6842
  "kind": "tool",
6710
6843
  "version": "1.0.0",
6711
- "content_hash": "df384233563daadc6ed0c1edef6169f63fc7aea0307f53df4b3ae75aaef1c2ea",
6844
+ "content_hash": "347b3d0ed648ee65c250050fd8b56f7b90792192fea02cd889365f193e24448a",
6712
6845
  "summary": "List and install Summer Engine export templates (Summer's WebGPU Forward+ web template, macOS, Windows) from Summer's CDN, sha256-checked.",
6713
6846
  "use_when": [
6714
6847
  "\"install the web export template\"",
@@ -6743,7 +6876,7 @@
6743
6876
  "id": "tool/fabricate-3d",
6744
6877
  "kind": "tool",
6745
6878
  "version": "1.0.0",
6746
- "content_hash": "a81490caa6d84592309e7d06848186916263f18b7e1d98877672767ff9fa83a0",
6879
+ "content_hash": "9d8e01e15bd6e446a729b2c8e533835d85646ca277f36f62b10100db87289e17",
6747
6880
  "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
6881
  "use_when": [
6749
6882
  "a modular kit with exact dimensions and snapping — walls, pipes, fences, rails — where generation cannot hold size and style across many pieces",
@@ -6804,7 +6937,7 @@
6804
6937
  "id": "tool/frame-nodes",
6805
6938
  "kind": "tool",
6806
6939
  "version": "1.0.0",
6807
- "content_hash": "4a6c94a6ad6dc741d4283434dbdd6d46a8c356793694007623ed0556024eba1b",
6940
+ "content_hash": "53477d1a8603c18a7a5ec1c7a9ccf59000c2361fb0a4c4fbb8d2ad800c2d5857",
6808
6941
  "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
6942
  "use_when": [
6810
6943
  "\"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 +6987,7 @@
6854
6987
  "id": "tool/frame-shot",
6855
6988
  "kind": "tool",
6856
6989
  "version": "1.0.0",
6857
- "content_hash": "896345ba57bd0d99d3d3fd2c721ee05866686c3450f9f8ec61bad24157c15cd3",
6990
+ "content_hash": "0698f5fe6cfcb89703b54caeaf06c39f649f6938f9d23be34bb3e975ea8c7bbf",
6858
6991
  "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
6992
  "use_when": [
6860
6993
  "\"find a good view of X\" / \"frame an establishing shot\" / \"show it from the player's eye\" / \"look down the street\"",
@@ -6905,7 +7038,7 @@
6905
7038
  "id": "tool/game-control",
6906
7039
  "kind": "tool",
6907
7040
  "version": "1.0.0",
6908
- "content_hash": "7e8656dbb2760a9a8d4952a6aeab127f54c1e26d9c2041fd19b7924c54414027",
7041
+ "content_hash": "93125d0c5bbc515930739cfe69ffc622b43f57e2b35d88a232e118a68fb236a2",
6909
7042
  "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
7043
  "use_when": [
6911
7044
  "pausing the running game and stepping one physics frame at a time to make exact frame-by-frame assertions",
@@ -6957,7 +7090,7 @@
6957
7090
  "id": "tool/game-input",
6958
7091
  "kind": "tool",
6959
7092
  "version": "1.0.1",
6960
- "content_hash": "8b66540c3f42f8eb040ee6fe6483ad59687db16c59334b737618f447132b1e53",
7093
+ "content_hash": "0023e9be570189273a214c3b64932436d2fc76be59d93822aa2c0462cd35a9b8",
6961
7094
  "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
7095
  "use_when": [
6963
7096
  "scripting a timed input sequence against the running game (walk right for 500 ms, jump at frame 30, click a button)",
@@ -7008,7 +7141,7 @@
7008
7141
  "id": "tool/game-probe",
7009
7142
  "kind": "tool",
7010
7143
  "version": "1.0.0",
7011
- "content_hash": "23e31a31694a3b656a674c81589534d526f4f47b5a0dcd05ef5686f4536098f5",
7144
+ "content_hash": "b57502fdab6416856f5ca079a8b81bbfde74146addc8b8397f52118c9a62b62e",
7012
7145
  "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
7146
  "use_when": [
7014
7147
  "proving what the running game is actually doing before and after an action — the evidence read of every playtest loop",
@@ -7064,8 +7197,8 @@
7064
7197
  "id": "tool/generate-3d",
7065
7198
  "kind": "tool",
7066
7199
  "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.",
7200
+ "content_hash": "6668e5ca70c44f1ae291e7368a64396ce3eaf8412343f45e0b44e1899981006f",
7201
+ "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
7202
  "use_when": [
7070
7203
  "creating a 3D asset or character from a prompt or reference image",
7071
7204
  "\"make me a low-poly tree / a sci-fi crate / a goblin for my game\"",
@@ -7165,7 +7298,7 @@
7165
7298
  "id": "tool/generate-motion",
7166
7299
  "kind": "tool",
7167
7300
  "version": "1.1.0",
7168
- "content_hash": "717ddb290afa9515ba84e041371c78eb5e26a875bda5c9914235fb4751f5b6ef",
7301
+ "content_hash": "e9353fcbb021788c09bf22ca0d6d0934015fd16637b831df268d40c0331f162f",
7169
7302
  "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
7303
  "use_when": [
7171
7304
  "adding idle, walk, run, or combat clips to a rigged character",
@@ -7447,7 +7580,7 @@
7447
7580
  "id": "tool/get-console",
7448
7581
  "kind": "tool",
7449
7582
  "version": "1.0.3",
7450
- "content_hash": "99bdf65dbbef0a834967d7149567addddcb8a1ffb35ca0c77786ec038b1cfbe2",
7583
+ "content_hash": "b956953bb799948c57488b7940cbd3666772a5b0685f5c713a235da8d75777bc",
7451
7584
  "summary": "Read recent editor Output panel messages, deduplicated and filterable by level, type, or substring. Editor console only - never the post-play verdict.",
7452
7585
  "use_when": [
7453
7586
  "diagnostics report console issues and you need the message bodies",
@@ -7481,7 +7614,7 @@
7481
7614
  "id": "tool/get-debugger-errors",
7482
7615
  "kind": "tool",
7483
7616
  "version": "1.0.2",
7484
- "content_hash": "86fa42010ffb8e2291a7b71ac2e33eb00cc08124da7b943b4ad4c7a4421b423b",
7617
+ "content_hash": "e1c7f166cb7316022f9a5ddc8444292a67e0e3f60d54e9e8c148a8070282715b",
7485
7618
  "summary": "Read deduplicated runtime errors from the debugger, distinct from console prints; optional stack traces.",
7486
7619
  "use_when": [
7487
7620
  "the running game hit failures like null references or missing nodes",
@@ -7515,7 +7648,7 @@
7515
7648
  "id": "tool/get-debugger-warnings",
7516
7649
  "kind": "tool",
7517
7650
  "version": "1.0.2",
7518
- "content_hash": "dc4de3ffbd4b58ea0abe2461d3787b7914f978e22073369923c8c27ceba07bf3",
7651
+ "content_hash": "ec703ca6d5112f16da7ff3be41911fa4b0ee3de8aa12076c77e2c4ae2d880d78",
7519
7652
  "summary": "Read runtime warnings from the debugger panel as structured entries with file, line, and callstack.",
7520
7653
  "use_when": [
7521
7654
  "diagnostics show a non-zero debugger warning count",
@@ -7549,7 +7682,7 @@
7549
7682
  "id": "tool/get-diagnostics",
7550
7683
  "kind": "tool",
7551
7684
  "version": "1.0.3",
7552
- "content_hash": "0e5a87fcb41bf8116a1fb33e5f3ba56a057854d873e04b0ec4e4709b6a68618a",
7685
+ "content_hash": "9b7a0053c4c8584168ad2f1ec790ddf75503f2ed856e725aaed13b273acea0b2",
7553
7686
  "summary": "Prioritized overview of editor console, runtime debugger, and script errors and warnings, with complete counts and a trimmed noise tail.",
7554
7687
  "use_when": [
7555
7688
  "first stop after any change, before targeted console or debugger reads",
@@ -7583,7 +7716,7 @@
7583
7716
  "id": "tool/get-project-context",
7584
7717
  "kind": "tool",
7585
7718
  "version": "2.0.0",
7586
- "content_hash": "c8cde53eababe6b12b5e8ca07a189673b09a84d51eea0a844815f7e648465f6e",
7719
+ "content_hash": "d1a8fbd23967b000f87e8f6b9f320597a28c5b5169afb799259fd512670c3b40",
7587
7720
  "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
7721
  "use_when": [
7589
7722
  "first call in every fresh session, to avoid guessing scene filenames",
@@ -7617,7 +7750,7 @@
7617
7750
  "id": "tool/get-runtime-tree",
7618
7751
  "kind": "tool",
7619
7752
  "version": "1.0.1",
7620
- "content_hash": "65939a49b44d072bde0dac9b005aa32c6d173182254167f94304233bca51adfc",
7753
+ "content_hash": "5ea5e8841b9261ab86c3068b4696fe28a13e262bc041030fbdcbc5b3dd2d53bf",
7621
7754
  "summary": "Scene tree of the RUNNING game — spawned enemies, autoloads, pooled nodes — live state the editor reads can never show.",
7622
7755
  "use_when": [
7623
7756
  "inspecting what actually spawned during a playtest without stopping the game",
@@ -7665,7 +7798,7 @@
7665
7798
  "id": "tool/get-scene-tree",
7666
7799
  "kind": "tool",
7667
7800
  "version": "1.0.2",
7668
- "content_hash": "51749172f527c332e49c070c202f2d19afd3ce1e9dc49ef10c4cb332d7c687b6",
7801
+ "content_hash": "54a13cbd2e420b5da4b7ff6352eadd70ee290278490776cc5888849091c2f811",
7669
7802
  "summary": "Read a scene's node tree, with explicit depth and limit to avoid the engine's silent default truncation.",
7670
7803
  "use_when": [
7671
7804
  "inspecting scene structure before or after mutations",
@@ -7699,7 +7832,7 @@
7699
7832
  "id": "tool/get-script-errors",
7700
7833
  "kind": "tool",
7701
7834
  "version": "1.0.2",
7702
- "content_hash": "e61ba4e1e1033d821073f96be0fbdc959ccb57739465d8f581b2f2d186531ae5",
7835
+ "content_hash": "b157eb54ad6acd2761833e9b162e6e7bb738d7f06ae19d98e6924aa6352cd8ab",
7703
7836
  "summary": "Check one GDScript file for parse and compile errors without running the game.",
7704
7837
  "use_when": [
7705
7838
  "after writing or editing a .gd file, to verify it compiles",
@@ -7767,7 +7900,7 @@
7767
7900
  "id": "tool/grep",
7768
7901
  "kind": "tool",
7769
7902
  "version": "1.0.0",
7770
- "content_hash": "57676c00eaf3003becb56c41ed837102cc29f82822d52d52d4389e9dba77115f",
7903
+ "content_hash": "a03d678632dbb4478703734b9350283693dda36f03f3b8dcaede2ea9cb1982d0",
7771
7904
  "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
7905
  "use_when": [
7773
7906
  "finding where something is in big project files without reading them whole",
@@ -7806,7 +7939,7 @@
7806
7939
  "id": "tool/import-asset",
7807
7940
  "kind": "tool",
7808
7941
  "version": "1.0.2",
7809
- "content_hash": "9cec560d2c7951bbe699a917ecb6865be50e718bee67b81b06801a0ac0eae9c2",
7942
+ "content_hash": "5dc47df734f7da8f1ca91d97d0b7750b46cd2aec93dd93be20341468ecedac0a",
7810
7943
  "summary": "Search the asset library and import the best match into the project in one step, optionally adding 3D models to a scene.",
7811
7944
  "use_when": [
7812
7945
  "the user asks to add a kind of asset, like 'add a tree to the scene'",
@@ -7840,7 +7973,7 @@
7840
7973
  "id": "tool/import-asset-by-id",
7841
7974
  "kind": "tool",
7842
7975
  "version": "1.0.2",
7843
- "content_hash": "b38644fa3c91e9f0eb31864d7e092c3210a7cd2dd2bbe3a692bf4a5685a57d35",
7976
+ "content_hash": "39881bd336a3e43820a9b43040f679602e5b9ebd5067594d52f2e0f272c43788",
7844
7977
  "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
7978
  "use_when": [
7846
7979
  "importing a just-generated or searched asset without guessing",
@@ -7873,7 +8006,7 @@
7873
8006
  "id": "tool/import-from-url",
7874
8007
  "kind": "tool",
7875
8008
  "version": "1.0.2",
7876
- "content_hash": "627132fc78ac795d7298f52e5b4abe5447bcfacb1f38b2fe4f1d0ef3c1e0be9a",
8009
+ "content_hash": "bfdfd497aba3d2513e041391028294510d2959bed94a4ad379c9246b6e0ad663",
7877
8010
  "summary": "Download one file from a URL and run Godot's full import pipeline so the asset is immediately usable.",
7878
8011
  "use_when": [
7879
8012
  "importing a model, texture, or audio file from an external URL",
@@ -7907,7 +8040,7 @@
7907
8040
  "id": "tool/import-from-url-batch",
7908
8041
  "kind": "tool",
7909
8042
  "version": "1.0.2",
7910
- "content_hash": "cbf45604d03606c044a13831156581f54f210ab0c5fe5955f5cc044f234aa805",
8043
+ "content_hash": "f9537f4cc763cda04468622de95449b9eba54b54d7b06b600eed8c27e707ed53",
7911
8044
  "summary": "Download multiple files by URL in one operation with a single filesystem scan afterwards.",
7912
8045
  "use_when": [
7913
8046
  "importing several related files, like a model plus its textures",
@@ -7941,7 +8074,7 @@
7941
8074
  "id": "tool/import-hdri",
7942
8075
  "kind": "tool",
7943
8076
  "version": "1.0.1",
7944
- "content_hash": "908a64ab271dffc9b8b4fa3f34218cafd9873235b9fe8f1d0007ca3a3f1248a9",
8077
+ "content_hash": "2f395b49c2f1c62077e1d7d0690ffdf91caee908b75072a942f0f0d0e6d51a0d",
7945
8078
  "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
8079
  "use_when": [
7947
8080
  "a 3D scene needs real environment lighting and reflections — the cheapest whole-scene visual upgrade",
@@ -7991,7 +8124,7 @@
7991
8124
  "id": "tool/input-map-bind",
7992
8125
  "kind": "tool",
7993
8126
  "version": "1.0.2",
7994
- "content_hash": "b8bd70a01434e41d6108d05f2e0d31b2cc442d0fccd1c494b368ace40b7c6283",
8127
+ "content_hash": "dfdbed8111b9656cdab2a74293a96905ba8612d42907e1c9d8c25cf4eba21ab1",
7995
8128
  "summary": "Create an input action if needed and bind keyboard or mouse events to it.",
7996
8129
  "use_when": [
7997
8130
  "setting up player controls like jump, move, or interact",
@@ -8025,7 +8158,7 @@
8025
8158
  "id": "tool/inspect-asset",
8026
8159
  "kind": "tool",
8027
8160
  "version": "1.0.0",
8028
- "content_hash": "f40a87d891da6193cf9efeb91a0cc6f4d831fd536fbfcad4d02d67ea7444d38d",
8161
+ "content_hash": "44f5e9a36efc013f26f1685fb7fa74096d75e7a41f8e498b2ded2f5a1e281848",
8029
8162
  "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
8163
  "use_when": [
8031
8164
  "learning a kit piece's real size, origin and which way it faces before placing it",
@@ -8075,7 +8208,7 @@
8075
8208
  "id": "tool/inspect-node",
8076
8209
  "kind": "tool",
8077
8210
  "version": "1.1.0",
8078
- "content_hash": "8016dc147b6eac09b87b75f7806b4f996bc80dd8204d29f9e701f40a1d9d75fd",
8211
+ "content_hash": "87b7fa642d6b613c2e4ffc37054b8911fe1f08fe60dea881795c15e42f6869e2",
8079
8212
  "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
8213
  "use_when": [
8081
8214
  "before modifying a node, to understand its current state",
@@ -8110,7 +8243,7 @@
8110
8243
  "id": "tool/inspect-resource",
8111
8244
  "kind": "tool",
8112
8245
  "version": "1.1.0",
8113
- "content_hash": "410f1d81c41b6b22a0bf754acf6d347b01313ee4fc0c546ba64852f951f1b5ed",
8246
+ "content_hash": "b362399fba15095ce7f7c0f8714833b19ceedc1dc066278425538e13b4364cde",
8114
8247
  "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
8248
  "use_when": [
8116
8249
  "reading sub-properties that the node inspector only names",
@@ -8145,7 +8278,7 @@
8145
8278
  "id": "tool/inspect-runtime-node",
8146
8279
  "kind": "tool",
8147
8280
  "version": "1.0.1",
8148
- "content_hash": "32557c8048ccd5af1d95a0d71d3d12df48ccc9802aea6b978954e3031ac8e785",
8281
+ "content_hash": "aaa22341f08b2ebb2ed1ac99872ab9a4a4b1b97ca9efbee1b963c46618e66f26",
8149
8282
  "summary": "Live properties of one node in the RUNNING game — actual stats, position, flags — without stopping the game and losing the state.",
8150
8283
  "use_when": [
8151
8284
  "answering \"where IS the player\" or \"what are this enemy's stats right now\" during a playtest",
@@ -8191,7 +8324,7 @@
8191
8324
  "id": "tool/instantiate-scene",
8192
8325
  "kind": "tool",
8193
8326
  "version": "1.1.0",
8194
- "content_hash": "f53c8c4d2df1ae52eb8d47518f780c16c910b17e9b9b443e33bc4030b7a8b039",
8327
+ "content_hash": "7b1a511fbe9f6ec3ebcfb3b6af752e65505fd7ab2caa18220397e8bc8dbe0d0d",
8195
8328
  "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
8329
  "use_when": [
8197
8330
  "placing a .tscn prefab or imported 3D model into a scene",
@@ -8226,7 +8359,7 @@
8226
8359
  "id": "tool/is-running",
8227
8360
  "kind": "tool",
8228
8361
  "version": "1.0.2",
8229
- "content_hash": "d159960b358cb01ecdde97f2fa23cd5cab3e50a4aa77b9a5183d2a92e774046d",
8362
+ "content_hash": "69d9b505487c755c1ad3ff49c9d99ab9c05a0b5a164d17e7625ae4f63925bb68",
8230
8363
  "summary": "Check whether the game is running; returns the active scene path when it is.",
8231
8364
  "use_when": [
8232
8365
  "deciding whether to boot, restart, or capture the running game",
@@ -8326,7 +8459,7 @@
8326
8459
  "id": "tool/measure",
8327
8460
  "kind": "tool",
8328
8461
  "version": "1.0.0",
8329
- "content_hash": "d6104d4b6e3ace9f0397b65ffdb2f2da2c541422ba02e776d7eab0fed5400094",
8462
+ "content_hash": "6cf4decb8cc695922546875eb8e32c80746e033af939a6e350c1d793998ad089",
8330
8463
  "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
8464
  "use_when": [
8332
8465
  "checking that two facade modules meet edge to edge, or how far apart or overlapping two pieces are on each axis",
@@ -8375,7 +8508,7 @@
8375
8508
  "id": "tool/navigation-probe",
8376
8509
  "kind": "tool",
8377
8510
  "version": "1.0.0",
8378
- "content_hash": "19a82a58187922eb9307e65d2d81fabd7c98487e1939af14b2a4cdf3985d6d9b",
8511
+ "content_hash": "0bd442a60d422fcc164f37cf5f0a4893b76823bf6c79eba14a45ceb710a61227",
8379
8512
  "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
8513
  "use_when": [
8381
8514
  "placing an NPC, pickup, portal, or encounter anchor whose route from spawn matters",
@@ -8424,7 +8557,7 @@
8424
8557
  "id": "tool/open",
8425
8558
  "kind": "tool",
8426
8559
  "version": "1.0.1",
8427
- "content_hash": "c1087ddd07caf7bca466f5545aa8f15c3e28dd6d4cedd41eddb28f466025ff02",
8560
+ "content_hash": "818d25fa4bde4b36dcfb7b29f74b8ee13768f264feee21288998bbf1f7017904",
8428
8561
  "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
8562
  "use_when": [
8430
8563
  "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 +8604,7 @@
8471
8604
  "authority": {
8472
8605
  "filesystem": false,
8473
8606
  "editor_mutation": false,
8474
- "network": false,
8607
+ "network": true,
8475
8608
  "credentials": false,
8476
8609
  "publish": false
8477
8610
  }
@@ -8480,7 +8613,7 @@
8480
8613
  "id": "tool/open-main-scene",
8481
8614
  "kind": "tool",
8482
8615
  "version": "1.0.2",
8483
- "content_hash": "ee8c6ba7f7e0fac6bdfb4a5aa3f4afb2930840c9204c88cb956e2d8080e55900",
8616
+ "content_hash": "a737d0fa2cd6f92f8bc08e6e19846f158a2f3311772ac9fd1c328b0055dc5ba6",
8484
8617
  "summary": "Open the project's configured main scene from project settings instead of guessing scene filenames.",
8485
8618
  "use_when": [
8486
8619
  "any tool reports that no scene is open",
@@ -8514,7 +8647,7 @@
8514
8647
  "id": "tool/open-scene",
8515
8648
  "kind": "tool",
8516
8649
  "version": "1.0.2",
8517
- "content_hash": "1e0bebc35369eae6c894b02603963829bc75a5b4e2db42ae5c1b1bd92827d363",
8650
+ "content_hash": "39d8ac4fd72cd3844777da47afbf536020b4418cf8cceee54bd5aa9e59163aab",
8518
8651
  "summary": "Open a scene file in the editor to switch tabs.",
8519
8652
  "use_when": [
8520
8653
  "switching the editor to an explicitly known scene path",
@@ -8548,7 +8681,7 @@
8548
8681
  "id": "tool/place-adjacent",
8549
8682
  "kind": "tool",
8550
8683
  "version": "1.0.0",
8551
- "content_hash": "891191f1947f53ad9803922be0075636554b4279914e5a6c4e9f064c1c7f3f25",
8684
+ "content_hash": "4b06271d1a3f354e872bfb9d870109b309b14c5e121af910474d9b1358d7df96",
8552
8685
  "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
8686
  "use_when": [
8554
8687
  "laying facade or wall modules edge to edge along a street line",
@@ -8598,7 +8731,7 @@
8598
8731
  "id": "tool/play",
8599
8732
  "kind": "tool",
8600
8733
  "version": "1.3.0",
8601
- "content_hash": "847dc3ae4e1602479d2198e6cfa39f31e7b6285d05f97731ffd424830f708afd",
8734
+ "content_hash": "8907087f8f29d2324d92ed9d656c74dfc7530dd55743b0de7c4768c3d3c42753",
8602
8735
  "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
8736
  "use_when": [
8604
8737
  "runtime verification after edits",
@@ -8650,7 +8783,7 @@
8650
8783
  "id": "tool/project-setting",
8651
8784
  "kind": "tool",
8652
8785
  "version": "1.0.2",
8653
- "content_hash": "d5942df90e058a5536fc524629c6e34b572c4b36617aaf5246c32732dafa34f6",
8786
+ "content_hash": "6e4518f2563c690a25bf24a4801f11176cfec67dfe63b9cc3baa4776c771ff67",
8654
8787
  "summary": "Set one project.godot setting, like main scene, window size, renderer, or gravity.",
8655
8788
  "use_when": [
8656
8789
  "configuring project-level behavior",
@@ -8683,8 +8816,8 @@
8683
8816
  {
8684
8817
  "id": "tool/publish-build",
8685
8818
  "kind": "tool",
8686
- "version": "1.0.0",
8687
- "content_hash": "653ac78e87a1a84c674bfdf0bf9c03889812edd5566b2c611f327b7cf84335c5",
8819
+ "version": "1.0.1",
8820
+ "content_hash": "2f9c5ce45a996d922b2f51f66acfc6c67c99bbd82c2fd3c7babaee29e5d9f914",
8688
8821
  "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
8822
  "use_when": [
8690
8823
  "\"upload my game to summer.games\"",
@@ -8707,7 +8840,7 @@
8707
8840
  "compatibility": {
8708
8841
  "engine": ">=4.6"
8709
8842
  },
8710
- "status": "preview",
8843
+ "status": "stable",
8711
8844
  "mcp_tool_name": "summer_publish_build",
8712
8845
  "remote": true,
8713
8846
  "authority": {
@@ -8722,7 +8855,7 @@
8722
8855
  "id": "tool/raycast",
8723
8856
  "kind": "tool",
8724
8857
  "version": "1.0.0",
8725
- "content_hash": "c1b0a03e470031d6c0adfaeccab2c2c8eb386cb08fec980bcfa4c0f43ea5af8e",
8858
+ "content_hash": "ebd29435c93b0650d712a35f2f1def29708a032dddb629207f9132d1f586e91a",
8726
8859
  "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
8860
  "use_when": [
8728
8861
  "finding the wall, floor or ceiling in front of a point and its normal before anything is placed there",
@@ -8770,7 +8903,7 @@
8770
8903
  "id": "tool/read-file",
8771
8904
  "kind": "tool",
8772
8905
  "version": "1.1.0",
8773
- "content_hash": "a17383c044d72243bd190c4d0f4e45f16fba35ad741796a3d68d9ffb495b7f8d",
8906
+ "content_hash": "638ac6a5db54ba05762c846ca5f135ff5c775d8fde57b100be6fe56e0300dca4",
8774
8907
  "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
8908
  "use_when": [
8776
8909
  "reading project files through the engine",
@@ -8812,7 +8945,7 @@
8812
8945
  "id": "tool/read-library",
8813
8946
  "kind": "tool",
8814
8947
  "version": "1.1.0",
8815
- "content_hash": "ded3e95871d25d27a9a53b4f7bc70433587c9d62b81387409505a3e97fb3e2e3",
8948
+ "content_hash": "050fa0a40a40cd54bda86d283c7168863508d5ba9e6142ed57f2f8315f5e54c5",
8816
8949
  "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
8950
  "use_when": [
8818
8951
  "summer_search_library returned an id and you need the entry itself before acting",
@@ -8862,7 +8995,7 @@
8862
8995
  "id": "tool/recent-events",
8863
8996
  "kind": "tool",
8864
8997
  "version": "1.0.0",
8865
- "content_hash": "f8f9c7fba524b0f43f8ff0af45cdaef01fa6ed4710b1c78b3f45d4de1462fed0",
8998
+ "content_hash": "4b31ef694f4acd58c9a671ea1893bfda05c65b10109bb19ad4f31311e298a89c",
8866
8999
  "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
9000
  "use_when": [
8868
9001
  "\"what just happened in the engine?\" / \"show me the recent events\" — the last saves, plays, op receipts, script errors, imports",
@@ -8913,7 +9046,7 @@
8913
9046
  "id": "tool/remove-node",
8914
9047
  "kind": "tool",
8915
9048
  "version": "1.0.2",
8916
- "content_hash": "5089297f1c5f4f63acba875e158f4e48ee2c84264a2ec43e9aba665bcc0c5fbf",
9049
+ "content_hash": "d7e2917a1fd9b9323f0e5272535fa43f032e691a1da17e592e319629a815a50e",
8917
9050
  "summary": "Remove a node and all its children from a scene; undoable, but destructive.",
8918
9051
  "use_when": [
8919
9052
  "deleting scene content the user asked to remove",
@@ -8947,7 +9080,7 @@
8947
9080
  "id": "tool/repeat-along",
8948
9081
  "kind": "tool",
8949
9082
  "version": "1.0.0",
8950
- "content_hash": "0f8df6a49ce6ea622343627bbf71ef997831da8830251bf6828bb5e3dcfc619e",
9083
+ "content_hash": "288d19a98e7618cb4662d4bcc740fde3fe6d67415f3117bfc24f836854b1ac2b",
8951
9084
  "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
9085
  "use_when": [
8953
9086
  "placing wall clamps, gutter braces or duct braces at a fixed spacing along a run",
@@ -8996,7 +9129,7 @@
8996
9129
  "id": "tool/replace-node",
8997
9130
  "kind": "tool",
8998
9131
  "version": "1.1.0",
8999
- "content_hash": "73ffc0dc80960e12daee3ec03cdf2a92014d259c1092fb23e60b19ef680f6549",
9132
+ "content_hash": "0fb4ae84243f7d860bf9965add882f0e013445f27649abee91ffcc4681856de5",
9000
9133
  "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
9134
  "use_when": [
9002
9135
  "swapping a placeholder for a prefab or changing a body type",
@@ -9038,7 +9171,7 @@
9038
9171
  "id": "tool/replace-text",
9039
9172
  "kind": "tool",
9040
9173
  "version": "1.0.2",
9041
- "content_hash": "f003a37d04d610539c822a9ad7ad22e70452683f29872545e9f29eb2bbefbdf3",
9174
+ "content_hash": "59d1f6c0200833d00053713600ab7f2c201b277b3481bcdbe0357dc272071f54",
9042
9175
  "summary": "Safely replace text in an existing project file: unique match required by default, then a sha256-guarded write.",
9043
9176
  "use_when": [
9044
9177
  "targeted edits to scripts, scenes, or config without resending the whole file",
@@ -9072,7 +9205,7 @@
9072
9205
  "id": "tool/run-editor-script",
9073
9206
  "kind": "tool",
9074
9207
  "version": "1.0.2",
9075
- "content_hash": "7cdf3b2dfcd8d1ed571484fc27347dc44ddc0165b4fc5102ace50a1071155e21",
9208
+ "content_hash": "1b5fb64108c247c1d1d4a362ab53d1c78aa83cf70e1588ce173b8253be489a93",
9076
9209
  "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
9210
  "use_when": [
9078
9211
  "re-saving many scenes, sweeping resources, mass import fixes, generating .tres assets, long bakes that should not block the live editor",
@@ -9117,9 +9250,9 @@
9117
9250
  {
9118
9251
  "id": "tool/run-script",
9119
9252
  "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.",
9253
+ "version": "1.1.0",
9254
+ "content_hash": "ea06ccc917c1e4fc53944a59d14b443c9565b17e262f50bec15b13709f2ed610",
9255
+ "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
9256
  "use_when": [
9124
9257
  "a change needs 3+ related ops or any computed placement (scatter, grids, procedural meshes, bulk edits)",
9125
9258
  "the ctx helpers (add_node, add_mesh, grid, scatter, light rig, environment) fit the job"
@@ -9152,7 +9285,7 @@
9152
9285
  "skill/verifying-scenes"
9153
9286
  ]
9154
9287
  },
9155
- "status": "preview",
9288
+ "status": "stable",
9156
9289
  "mcp_tool_name": "summer_run_script",
9157
9290
  "remote": false,
9158
9291
  "authority": {
@@ -9167,7 +9300,7 @@
9167
9300
  "id": "tool/runtime-animate",
9168
9301
  "kind": "tool",
9169
9302
  "version": "1.0.0",
9170
- "content_hash": "58caceb2d272f504d60e6c203ecf7288f64cde10472f402438c7740c3024b1dc",
9303
+ "content_hash": "2f89196429056b127ba70a27877345f69e7c7ad35fde711b8ecc827a77506541",
9171
9304
  "summary": "Drive and read animation in the RUNNING game — AnimationPlayer clips, AnimationTree state machines, and live Skeleton3D bone poses.",
9172
9305
  "use_when": [
9173
9306
  "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 +9353,7 @@
9220
9353
  "id": "tool/runtime-call",
9221
9354
  "kind": "tool",
9222
9355
  "version": "1.0.0",
9223
- "content_hash": "4cf5cd33f6353ee9a11b889a1aa3ca4a2d24f8eb67cae42ca2f2600615d028a3",
9356
+ "content_hash": "de484153bf675702706fee051adf6e2b7f104852afc344781318693838a3e53a",
9224
9357
  "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
9358
  "use_when": [
9226
9359
  "triggering gameplay code in the running game and reading its answer — take_damage, start_wave, get_velocity",
@@ -9272,7 +9405,7 @@
9272
9405
  "id": "tool/runtime-set",
9273
9406
  "kind": "tool",
9274
9407
  "version": "1.0.0",
9275
- "content_hash": "19be16f4a367ab9e3aba7403c54231fb7475798972a31946c67dc9d80ba03ff5",
9408
+ "content_hash": "e590a3e770692bde55c467e118c29b720f851c2cc4493aae4e75c1bfed4c9759",
9276
9409
  "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
9410
  "use_when": [
9278
9411
  "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 +9457,7 @@
9324
9457
  "id": "tool/runtime-spawn",
9325
9458
  "kind": "tool",
9326
9459
  "version": "1.0.0",
9327
- "content_hash": "3c64559d9b9a5c41b66b6f86c0de97ed7771975e5f8b330ac44e686f68c981e7",
9460
+ "content_hash": "28df6f67219f42d92abe956925c43c4c890948d35cf12dee7f873620e67da34d",
9328
9461
  "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
9462
  "use_when": [
9330
9463
  "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 +9509,7 @@
9376
9509
  "id": "tool/save-scene",
9377
9510
  "kind": "tool",
9378
9511
  "version": "1.0.2",
9379
- "content_hash": "fefc2489e16634edd4ed29780930e9daad8e002e6fb0d61e48913620a29bc585",
9512
+ "content_hash": "b73c2e7fb78245c5e5a039988b8b280eb4968f804ffa20cb08d3f2aba6132981",
9380
9513
  "summary": "Save an explicit scene to disk, for standalone saves or save-as.",
9381
9514
  "use_when": [
9382
9515
  "a standalone save or save-as is needed",
@@ -9410,7 +9543,7 @@
9410
9543
  "id": "tool/scene-audit",
9411
9544
  "kind": "tool",
9412
9545
  "version": "1.3.0",
9413
- "content_hash": "474abfec07fd4dc9a955bbaf7894bc5bea743f81842646b847bf091611ed2e37",
9546
+ "content_hash": "b4210d50ea13edb1ac413759b5670ebff3795cb87cb25561424223183d221436",
9414
9547
  "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
9548
  "use_when": [
9416
9549
  "after each build stage of a 3D level or kit-built street: \"what is wrong with this scene and where exactly?\"",
@@ -9468,7 +9601,7 @@
9468
9601
  "id": "tool/screenshot",
9469
9602
  "kind": "tool",
9470
9603
  "version": "1.2.0",
9471
- "content_hash": "1b3955c9e46ce009b49de86f00418b60d10f55fff0f9804cea7586bcdfc1b551",
9604
+ "content_hash": "c421909fa8ea62c3be65cbbe2863ddffa1599be5b372b5b378a37e0eb435abe3",
9472
9605
  "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
9606
  "use_when": [
9474
9607
  "visually verifying layout, scale, framing, or runtime state",
@@ -9600,7 +9733,7 @@
9600
9733
  "id": "tool/select-node",
9601
9734
  "kind": "tool",
9602
9735
  "version": "1.0.2",
9603
- "content_hash": "2ef5adab532c432601cf4ed7a318f3af1123edcbc9ff6298d65f0779d77857f7",
9736
+ "content_hash": "29e08a3ba3e8c523cce8311685f933f9639445e2515f6ef8de7ce6c1385df477",
9604
9737
  "summary": "Select a node in the editor scene tree and show it in the inspector.",
9605
9738
  "use_when": [
9606
9739
  "focusing the user's editor on a specific node",
@@ -9634,7 +9767,7 @@
9634
9767
  "id": "tool/set-prop",
9635
9768
  "kind": "tool",
9636
9769
  "version": "1.0.2",
9637
- "content_hash": "8cede86cfad08b52b99b72a14f6118af168f5ca05856599f0053bff9af8f5d76",
9770
+ "content_hash": "7322a8ec389c209d41c7fe0b56f47c8e8b42616d19044d9b070d7ff6721ab5f9",
9638
9771
  "summary": "Set a node property using Godot string syntax for vectors, colors, transforms, and resource class names.",
9639
9772
  "use_when": [
9640
9773
  "configuring nodes after adding them",
@@ -9668,7 +9801,7 @@
9668
9801
  "id": "tool/set-resource-property",
9669
9802
  "kind": "tool",
9670
9803
  "version": "1.0.2",
9671
- "content_hash": "1d34d2a35dd857909754857b1a5de8696ab88aacfc4a034b5e52a021b282e155",
9804
+ "content_hash": "540bb40211a70992df7971380c4fb61d3563473e90ddc9d4c2dc19791c8fc36e",
9672
9805
  "summary": "Set a nested property on a resource attached to a node, like a collision shape size or material color.",
9673
9806
  "use_when": [
9674
9807
  "modifying sub-properties of meshes, materials, or shapes",
@@ -9702,7 +9835,7 @@
9702
9835
  "id": "tool/shot-sheet",
9703
9836
  "kind": "tool",
9704
9837
  "version": "1.0.0",
9705
- "content_hash": "45db27ac2ad936e72212fc8172bc6facaddc4e8ee7eee723b9decf88f3629dbf",
9838
+ "content_hash": "9e9dddf23e353637b51db1a6ae82e0be981c0c3bbe3274262194a644e9e2a004",
9706
9839
  "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
9840
  "use_when": [
9708
9841
  "seeing every hero view of an environment at once after a change, in one image",
@@ -9786,7 +9919,7 @@
9786
9919
  "id": "tool/snap-to-surface",
9787
9920
  "kind": "tool",
9788
9921
  "version": "1.2.0",
9789
- "content_hash": "b7c9d59e4c42872f02689437a4e091d0429733b4dbf93850aac3fe8e363c93f0",
9922
+ "content_hash": "be7dfce006254a9c8b01a7d4e6402e6f4bccf16c33c88ef4a0828208aeeeaf49",
9790
9923
  "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
9924
  "use_when": [
9792
9925
  "seating a prop on a floor, ramp, table, or shelf instead of hand-tuning its Y position",
@@ -9837,7 +9970,7 @@
9837
9970
  "id": "tool/snapshot-diff",
9838
9971
  "kind": "tool",
9839
9972
  "version": "1.0.1",
9840
- "content_hash": "500b39603410e8dd9dc7af2526671d58efb341ceff5556f0038f831b5dbcc2b5",
9973
+ "content_hash": "996761994942d2099ccfa3e5352a59fe3eb9cc3c8637a5c1f1718625dcbe657d",
9841
9974
  "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
9975
  "use_when": [
9843
9976
  "verifying a mutation batch against the snapshot_id taken before it",
@@ -9884,7 +10017,7 @@
9884
10017
  "id": "tool/starcast",
9885
10018
  "kind": "tool",
9886
10019
  "version": "1.0.0",
9887
- "content_hash": "149de44b173e1bc315fd87bf42d713fb4fa9eba3d7979942293ef6bf200cd222",
10020
+ "content_hash": "d60064e9567a356dbe7c2e0d36e178c0f6eb26feef100e7edf6a941f83e820d1",
9888
10021
  "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
10022
  "use_when": [
9890
10023
  "learning what surrounds a placed prop before and after a correction — which direction is blocked, by what, and at what distance",
@@ -9971,7 +10104,7 @@
9971
10104
  "id": "tool/stop",
9972
10105
  "kind": "tool",
9973
10106
  "version": "1.1.1",
9974
- "content_hash": "9b6590d40c5badbd71497513aea70aaa5bb382fee833c3c1fac6af7dc9e73a0a",
10107
+ "content_hash": "4aaebbc1a8692a0d03a1d33bf92b1d3f5ff4adff8e73e075a1aeb3449f03e0af",
9975
10108
  "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
10109
  "use_when": [
9977
10110
  "runtime verification is finished",
@@ -10012,7 +10145,7 @@
10012
10145
  "id": "tool/test-placement",
10013
10146
  "kind": "tool",
10014
10147
  "version": "1.0.0",
10015
- "content_hash": "4c1ad515f5ae70d1f256b86fb44f3c81984e3f59b8e482c55967c54c58d0e2af",
10148
+ "content_hash": "ecdf39562cc5c5250bf6fd14c092159d8ba66a7f37489b5efd7739a738a253c1",
10016
10149
  "summary": "Ghost-test one 3D node at a candidate global pose without moving it — overlap evidence, grounded state, signed floor gap. Read-only.",
10017
10150
  "use_when": [
10018
10151
  "deciding whether a prop fits in a shelf, cubby, doorway, platform, or dense set before committing the transform",
@@ -10061,7 +10194,7 @@
10061
10194
  "id": "tool/ui-actions",
10062
10195
  "kind": "tool",
10063
10196
  "version": "1.0.0",
10064
- "content_hash": "52cad0fa683ffde23b6c3b5be24ef6e87765b1d67d63c6e646860a77a4072cb5",
10197
+ "content_hash": "ff6998c3ce39f8c0fbfb94daf65e2aec7839265a6ac6b50f27017edafa85f94f",
10065
10198
  "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
10199
  "use_when": [
10067
10200
  "\"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 +10246,7 @@
10113
10246
  "id": "tool/ui-activate",
10114
10247
  "kind": "tool",
10115
10248
  "version": "1.0.0",
10116
- "content_hash": "6ef1ca9999070dd2ca3b054f3c20983b83bb4e836a73b960d3a0ca642f4941b6",
10249
+ "content_hash": "8bf16171089ebe5d92367d0357c53e6714f4855dc3ea8399d4aad46b3098120e",
10117
10250
  "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
10251
  "use_when": [
10119
10252
  "\"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 +10295,7 @@
10162
10295
  "id": "tool/ui-screenshot",
10163
10296
  "kind": "tool",
10164
10297
  "version": "1.0.0",
10165
- "content_hash": "b29c5f4908a6a816425d6281448cf0cd3830b3df91a32a62d86b2da7cebd3c51",
10298
+ "content_hash": "b8e24c872aea905d24154f1b267ab4905c006a576c40962c77bdc66ed1129319",
10166
10299
  "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
10300
  "use_when": [
10168
10301
  "\"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 +10344,7 @@
10211
10344
  "id": "tool/ui-tree",
10212
10345
  "kind": "tool",
10213
10346
  "version": "1.0.0",
10214
- "content_hash": "83f9f8f61e441eccd050f09a9fb0e12bf4884a5f2a12a0df6102f1f9108ec9d0",
10347
+ "content_hash": "33b17290e03042ae187ea83a60b37547b7a2e7fd57d694ee088e47424210f3c8",
10215
10348
  "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
10349
  "use_when": [
10217
10350
  "\"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 +10394,7 @@
10261
10394
  "id": "tool/wait-for-event",
10262
10395
  "kind": "tool",
10263
10396
  "version": "1.0.0",
10264
- "content_hash": "670da1a0f9820e969ae6f72dac6dd8e253be5c5bb204e92abfb6648482ad42df",
10397
+ "content_hash": "7009939c00649bac528ed87e907fbb2cc9c22d9f4db4d7f810c5ae6ffe36d09e",
10265
10398
  "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
10399
  "use_when": [
10267
10400
  "\"wait for the game to start\" — right after summer_play, wait for play.started instead of guessing how long boot takes",
@@ -10314,7 +10447,7 @@
10314
10447
  "id": "tool/world-snapshot",
10315
10448
  "kind": "tool",
10316
10449
  "version": "1.1.0",
10317
- "content_hash": "09d31f36f56fb04eefcd8d4c7b875e320a7525e75659f4a022ca8c5782982d58",
10450
+ "content_hash": "8f8dab1d735156630961e3bbef0b5e8985eb7f9e8e933a173aae163c56fbe9e1",
10318
10451
  "summary": "Structured scene snapshot (paths, transforms, world AABBs, fingerprints, counts), filterable by subtree, class and field; the read around every mutation.",
10319
10452
  "use_when": [
10320
10453
  "taking a diffable baseline before a mutation batch, or verifying transforms/AABBs/fingerprints after one",
@@ -10366,7 +10499,7 @@
10366
10499
  "id": "tool/write-file",
10367
10500
  "kind": "tool",
10368
10501
  "version": "1.0.2",
10369
- "content_hash": "0b2f2d341b256697ac8375e8fe501af6984c9fdf521ea431d5de34b30839ea32",
10502
+ "content_hash": "a4b39712bf00552b3729956397a16c729fdfd477e8798b88b8fdaaad01b7c761",
10370
10503
  "summary": "Create or safely overwrite one complete text file through the identity-bound engine; exactly one guard is required, so writes fail closed.",
10371
10504
  "use_when": [
10372
10505
  "creating a new project file with the create-only guard",
@@ -10399,7 +10532,7 @@
10399
10532
  "id": "tool/zoom",
10400
10533
  "kind": "tool",
10401
10534
  "version": "1.0.0",
10402
- "content_hash": "89aa4303b4c395883ffbc34ca9aa9896fd7bbc75ed23f9d3993550c17ab725ea",
10535
+ "content_hash": "a6cb76ca44426871caaf3e9a27d4d048ef57bd58c483effbff80d17f997a2b56",
10403
10536
  "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
10537
  "use_when": [
10405
10538
  "checking seams, gaps, floating pieces, texture resolution or tiling up close",