summer-engine 2.8.1 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (742) hide show
  1. package/.claude-plugin/marketplace.json +27 -7
  2. package/.claude-plugin/plugin.json +99 -83
  3. package/.codex-plugin/plugin.json +112 -82
  4. package/.cursor-plugin/plugin.json +119 -83
  5. package/.factory-plugin/plugin.json +100 -3
  6. package/.mcp.json +6 -1
  7. package/.opencode/INSTALL.md +7 -4
  8. package/.opencode/plugins/summer.js +31 -18
  9. package/AGENTS.md +107 -34
  10. package/CHANGELOG.md +134 -41
  11. package/CLAUDE.md +4 -2
  12. package/GEMINI.md +7 -53
  13. package/NOTICE +31 -0
  14. package/README.md +159 -391
  15. package/assets/api-docs.json.gz +0 -0
  16. package/assets/autopilot/README.md +20 -6
  17. package/assets/autopilot/autopilot.gd +80 -26
  18. package/assets/autopilot/run.sh +132 -7
  19. package/assets/navigation/web-routes.json +719 -0
  20. package/commands/gameskill.md +10 -108
  21. package/commands/summer.md +72 -4
  22. package/dist/bin/summer.js +6 -87
  23. package/dist/cli/banner.d.ts +1 -0
  24. package/dist/cli/banner.js +33 -0
  25. package/dist/{commands → cli/commands}/config.js +1 -1
  26. package/dist/cli/commands/create.d.ts +30 -0
  27. package/dist/cli/commands/create.js +212 -0
  28. package/dist/{commands → cli/commands}/debug.js +2 -2
  29. package/dist/cli/commands/doctor.d.ts +2 -0
  30. package/dist/cli/commands/doctor.js +18 -0
  31. package/dist/cli/commands/events.d.ts +57 -0
  32. package/dist/cli/commands/events.js +158 -0
  33. package/dist/cli/commands/install.d.ts +50 -0
  34. package/dist/cli/commands/install.js +447 -0
  35. package/dist/cli/commands/list.js +72 -0
  36. package/dist/{commands → cli/commands}/login.js +33 -17
  37. package/dist/{commands → cli/commands}/logout.d.ts +1 -0
  38. package/dist/cli/commands/logout.js +19 -0
  39. package/dist/{commands → cli/commands}/memory.d.ts +1 -8
  40. package/dist/{commands → cli/commands}/memory.js +20 -11
  41. package/dist/cli/commands/open.d.ts +45 -0
  42. package/dist/cli/commands/open.js +216 -0
  43. package/dist/{commands → cli/commands}/plan.js +2 -2
  44. package/dist/{commands → cli/commands}/publish.js +1 -1
  45. package/dist/{commands → cli/commands}/releases.js +1 -1
  46. package/dist/cli/commands/run.d.ts +19 -0
  47. package/dist/cli/commands/run.js +255 -0
  48. package/dist/{commands → cli/commands}/setup.js +43 -89
  49. package/dist/{commands → cli/commands}/skills.js +85 -222
  50. package/dist/{commands → cli/commands}/status.d.ts +1 -0
  51. package/dist/cli/commands/status.js +62 -0
  52. package/dist/cli/commands/tool.d.ts +11 -0
  53. package/dist/cli/commands/tool.js +121 -0
  54. package/dist/cli/index.d.ts +6 -0
  55. package/dist/cli/index.js +89 -0
  56. package/dist/cli/root-action.d.ts +7 -0
  57. package/dist/cli/root-action.js +15 -0
  58. package/dist/{lib → core}/api-client.d.ts +106 -15
  59. package/dist/{lib → core}/api-client.js +267 -75
  60. package/dist/{lib → core}/async-op-lifecycle.d.ts +3 -4
  61. package/dist/{lib → core}/async-op-lifecycle.js +3 -4
  62. package/dist/{lib → core}/auth.d.ts +14 -6
  63. package/dist/{lib → core}/auth.js +56 -40
  64. package/dist/core/capabilities/agent-playbook.d.ts +20 -0
  65. package/dist/core/capabilities/agent-playbook.js +218 -0
  66. package/dist/core/capabilities/api-docs.d.ts +36 -0
  67. package/dist/core/capabilities/api-docs.js +118 -0
  68. package/dist/core/capabilities/asset-import.d.ts +49 -0
  69. package/dist/core/capabilities/asset-import.js +134 -0
  70. package/dist/core/capabilities/camera-view.d.ts +98 -0
  71. package/dist/core/capabilities/camera-view.js +222 -0
  72. package/dist/core/capabilities/capture.d.ts +63 -0
  73. package/dist/core/capabilities/capture.js +67 -0
  74. package/dist/core/capabilities/console-read.d.ts +17 -0
  75. package/dist/core/capabilities/console-read.js +21 -0
  76. package/dist/{lib → core/capabilities}/creator.d.ts +1 -29
  77. package/dist/{lib → core/capabilities}/creator.js +14 -33
  78. package/dist/{lib → core/capabilities}/debug-report.d.ts +1 -1
  79. package/dist/{lib → core/capabilities}/debug-report.js +12 -31
  80. package/dist/{commands → core/capabilities}/doctor.d.ts +7 -2
  81. package/dist/{commands → core/capabilities}/doctor.js +47 -73
  82. package/dist/core/capabilities/engine-fallbacks.d.ts +26 -0
  83. package/dist/core/capabilities/engine-fallbacks.js +36 -0
  84. package/dist/core/capabilities/engine-ops.d.ts +33 -0
  85. package/dist/core/capabilities/engine-ops.js +145 -0
  86. package/dist/core/capabilities/engine-receipt.d.ts +53 -0
  87. package/dist/core/capabilities/engine-receipt.js +134 -0
  88. package/dist/core/capabilities/events.d.ts +200 -0
  89. package/dist/core/capabilities/events.js +383 -0
  90. package/dist/core/capabilities/fabricate-mesh.d.ts +111 -0
  91. package/dist/core/capabilities/fabricate-mesh.js +165 -0
  92. package/dist/core/capabilities/frame-quality.d.ts +71 -0
  93. package/dist/core/capabilities/frame-quality.js +449 -0
  94. package/dist/core/capabilities/game-task-plan.d.ts +66 -0
  95. package/dist/{lib → core/capabilities}/game-task-plan.js +59 -8
  96. package/dist/core/capabilities/hdri-import.d.ts +90 -0
  97. package/dist/core/capabilities/hdri-import.js +250 -0
  98. package/dist/core/capabilities/image-generation.d.ts +24 -0
  99. package/dist/core/capabilities/image-generation.js +22 -0
  100. package/dist/core/capabilities/navigation/open.d.ts +156 -0
  101. package/dist/core/capabilities/navigation/open.js +567 -0
  102. package/dist/core/capabilities/navigation/render-product-map.d.ts +1 -0
  103. package/dist/core/capabilities/navigation/render-product-map.js +84 -0
  104. package/dist/core/capabilities/navigation/targets.d.ts +87 -0
  105. package/dist/core/capabilities/navigation/targets.js +250 -0
  106. package/dist/core/capabilities/play-determinism.d.ts +35 -0
  107. package/dist/core/capabilities/play-determinism.js +86 -0
  108. package/dist/core/capabilities/project-context.d.ts +114 -0
  109. package/dist/core/capabilities/project-context.js +249 -0
  110. package/dist/core/capabilities/runtime-control.d.ts +540 -0
  111. package/dist/core/capabilities/runtime-control.js +1011 -0
  112. package/dist/core/capabilities/scene-kind.d.ts +19 -0
  113. package/dist/core/capabilities/scene-kind.js +137 -0
  114. package/dist/core/capabilities/scene-script.d.ts +38 -0
  115. package/dist/core/capabilities/scene-script.js +45 -0
  116. package/dist/core/capabilities/tool-dispatch.d.ts +42 -0
  117. package/dist/core/capabilities/tool-dispatch.js +1490 -0
  118. package/dist/core/capabilities/ui-control.d.ts +179 -0
  119. package/dist/core/capabilities/ui-control.js +423 -0
  120. package/dist/core/capabilities/variant-types.d.ts +22 -0
  121. package/dist/core/capabilities/variant-types.js +101 -0
  122. package/dist/core/capability-skew.d.ts +205 -0
  123. package/dist/core/capability-skew.js +386 -0
  124. package/dist/{lib → core}/config.d.ts +11 -1
  125. package/dist/{lib → core}/config.js +13 -2
  126. package/dist/core/embeddings.d.ts +78 -0
  127. package/dist/core/embeddings.js +166 -0
  128. package/dist/core/engine-install.d.ts +105 -0
  129. package/dist/core/engine-install.js +190 -0
  130. package/dist/core/engine.d.ts +94 -0
  131. package/dist/{lib → core}/engine.js +74 -28
  132. package/dist/core/feedback/client.d.ts +88 -0
  133. package/dist/core/feedback/client.js +182 -0
  134. package/dist/{lib → core}/format.d.ts +0 -1
  135. package/dist/{lib → core}/format.js +1 -1
  136. package/dist/core/headless/connection.d.ts +86 -0
  137. package/dist/core/headless/connection.js +97 -0
  138. package/dist/core/headless/editor-connection.d.ts +26 -0
  139. package/dist/core/headless/editor-connection.js +81 -0
  140. package/dist/core/headless/mcp-routing.d.ts +38 -0
  141. package/dist/core/headless/mcp-routing.js +83 -0
  142. package/dist/core/headless/registry.d.ts +91 -0
  143. package/dist/core/headless/registry.js +226 -0
  144. package/dist/core/headless/resolve.d.ts +46 -0
  145. package/dist/core/headless/resolve.js +75 -0
  146. package/dist/core/headless/spawn.d.ts +46 -0
  147. package/dist/core/headless/spawn.js +205 -0
  148. package/dist/core/headless/worker-connection.d.ts +96 -0
  149. package/dist/core/headless/worker-connection.js +353 -0
  150. package/dist/core/headless/worker-engine-client.d.ts +58 -0
  151. package/dist/core/headless/worker-engine-client.js +246 -0
  152. package/dist/core/launch-posture.d.ts +170 -0
  153. package/dist/core/launch-posture.js +317 -0
  154. package/dist/core/library-read.d.ts +73 -0
  155. package/dist/core/library-read.js +279 -0
  156. package/dist/core/library-search.d.ts +143 -0
  157. package/dist/core/library-search.js +301 -0
  158. package/dist/{lib → core}/log-filters.js +4 -2
  159. package/dist/{lib → core}/mcp-log.js +2 -17
  160. package/dist/core/package-root.d.ts +9 -0
  161. package/dist/core/package-root.js +11 -0
  162. package/dist/core/redact.d.ts +20 -0
  163. package/dist/core/redact.js +64 -0
  164. package/dist/core/registry-search.d.ts +167 -0
  165. package/dist/core/registry-search.js +358 -0
  166. package/dist/core/skills-registry.d.ts +47 -0
  167. package/dist/core/skills-registry.js +83 -0
  168. package/dist/{lib → core}/store.js +11 -7
  169. package/dist/{lib → core}/summer-compatibility.js +3 -3
  170. package/dist/{lib → core}/telemetry.js +5 -2
  171. package/dist/core/templates.d.ts +98 -0
  172. package/dist/core/templates.js +241 -0
  173. package/dist/core/tool-errors.d.ts +30 -0
  174. package/dist/core/tool-errors.js +40 -0
  175. package/dist/core/trajectory.d.ts +80 -0
  176. package/dist/core/trajectory.js +307 -0
  177. package/dist/core/util/http.d.ts +13 -0
  178. package/dist/core/util/http.js +28 -0
  179. package/dist/core/util/json.d.ts +12 -0
  180. package/dist/core/util/json.js +21 -0
  181. package/dist/core/util/process.d.ts +3 -0
  182. package/dist/core/util/process.js +13 -0
  183. package/dist/core/util/sleep.d.ts +1 -0
  184. package/dist/core/util/sleep.js +3 -0
  185. package/dist/core/version.d.ts +3 -0
  186. package/dist/core/version.js +5 -0
  187. package/dist/{lib → installer}/agent-config.d.ts +20 -1
  188. package/dist/{lib → installer}/agent-config.js +148 -23
  189. package/dist/installer/legacy-skills.d.ts +26 -0
  190. package/dist/installer/legacy-skills.js +53 -0
  191. package/dist/installer/setup.d.ts +76 -0
  192. package/dist/installer/setup.js +146 -0
  193. package/dist/installer/skill-locations.d.ts +45 -0
  194. package/dist/installer/skill-locations.js +170 -0
  195. package/dist/installer/version-check.d.ts +174 -0
  196. package/dist/{lib → installer}/version-check.js +173 -42
  197. package/dist/{lib/mcp-boot-notice.d.ts → mcp/boot-notice.d.ts} +1 -1
  198. package/dist/{commands/mcp.js → mcp/command.js} +18 -6
  199. package/dist/mcp/server.d.ts +23 -3
  200. package/dist/mcp/server.js +122 -28
  201. package/dist/mcp/tools/asset-tools.js +62 -142
  202. package/dist/mcp/tools/creator-tools.js +5 -23
  203. package/dist/mcp/tools/debug-tools.js +61 -18
  204. package/dist/mcp/tools/event-tools.d.ts +14 -0
  205. package/dist/mcp/tools/event-tools.js +41 -0
  206. package/dist/mcp/tools/fabricate-tools.d.ts +2 -0
  207. package/dist/mcp/tools/fabricate-tools.js +28 -0
  208. package/dist/mcp/tools/feedback-tools.d.ts +77 -0
  209. package/dist/mcp/tools/feedback-tools.js +88 -0
  210. package/dist/mcp/tools/file-tools.js +6 -53
  211. package/dist/mcp/tools/generate-tools.js +37 -63
  212. package/dist/mcp/tools/library-tools.d.ts +11 -0
  213. package/dist/mcp/tools/library-tools.js +42 -0
  214. package/dist/mcp/tools/navigation-tools.d.ts +7 -0
  215. package/dist/mcp/tools/navigation-tools.js +37 -0
  216. package/dist/mcp/tools/perception-tools.d.ts +20 -0
  217. package/dist/mcp/tools/perception-tools.js +146 -0
  218. package/dist/mcp/tools/project-tools.d.ts +14 -0
  219. package/dist/mcp/tools/project-tools.js +72 -281
  220. package/dist/mcp/tools/runtime-tools.d.ts +2 -0
  221. package/dist/mcp/tools/runtime-tools.js +92 -0
  222. package/dist/mcp/tools/scene-tools.d.ts +3 -0
  223. package/dist/mcp/tools/scene-tools.js +68 -119
  224. package/dist/mcp/tools/script-tools.d.ts +3 -0
  225. package/dist/mcp/tools/script-tools.js +118 -0
  226. package/dist/mcp/tools/spatial-tools.d.ts +2 -0
  227. package/dist/mcp/tools/spatial-tools.js +485 -0
  228. package/dist/mcp/tools/text-json.d.ts +8 -0
  229. package/dist/mcp/tools/text-json.js +12 -0
  230. package/dist/mcp/tools/{cloud-tools.d.ts → ui-tools.d.ts} +1 -1
  231. package/dist/mcp/tools/ui-tools.js +82 -0
  232. package/dist/mcp/tools/visual-tools.d.ts +2 -7
  233. package/dist/mcp/tools/visual-tools.js +383 -101
  234. package/dist/mcp/tools/with-engine.d.ts +9 -15
  235. package/dist/mcp/tools/with-engine.js +60 -96
  236. package/dist/project-memory/project-manifest.d.ts +36 -0
  237. package/dist/project-memory/project-manifest.js +50 -0
  238. package/dist/project-memory/project-memory.d.ts +57 -0
  239. package/dist/{lib → project-memory}/project-memory.js +46 -0
  240. package/gemini-extension.json +103 -2
  241. package/hooks/hooks-cursor.json +2 -2
  242. package/hooks/hooks.json +2 -1
  243. package/hooks/pre-commit-doctor.sh +45 -39
  244. package/hooks/run-hook.cmd +30 -23
  245. package/hooks/run-hook.sh +20 -0
  246. package/hooks/session-start.sh +18 -7
  247. package/integrations/README.md +70 -0
  248. package/integrations/claude/README.md +19 -0
  249. package/integrations/claude/manifest-target.json +16 -0
  250. package/integrations/cline/README.md +13 -0
  251. package/integrations/cline/manifest-target.json +3 -0
  252. package/integrations/codex/README.md +15 -0
  253. package/integrations/codex/manifest-target.json +5 -0
  254. package/integrations/cursor/README.md +16 -0
  255. package/integrations/cursor/manifest-target.json +5 -0
  256. package/integrations/factory/README.md +26 -0
  257. package/integrations/factory/manifest-target.json +5 -0
  258. package/integrations/gemini/README.md +26 -0
  259. package/integrations/gemini/manifest-target.json +5 -0
  260. package/integrations/github-copilot/README.md +12 -0
  261. package/integrations/github-copilot/manifest-target.json +3 -0
  262. package/integrations/kilo-code/README.md +16 -0
  263. package/integrations/kilo-code/manifest-target.json +3 -0
  264. package/integrations/lm-studio/README.md +12 -0
  265. package/integrations/lm-studio/manifest-target.json +3 -0
  266. package/integrations/opencode/README.md +15 -0
  267. package/integrations/opencode/manifest-target.json +3 -0
  268. package/integrations/roo-code/README.md +13 -0
  269. package/integrations/roo-code/manifest-target.json +3 -0
  270. package/integrations/vscode-copilot/README.md +12 -0
  271. package/integrations/vscode-copilot/manifest-target.json +3 -0
  272. package/integrations/windsurf/README.md +13 -0
  273. package/integrations/windsurf/manifest-target.json +3 -0
  274. package/library/references/collaborative-protocol/resource.yaml +24 -0
  275. package/library/references/gd-style/resource.yaml +24 -0
  276. package/{references → library/references/godot-version}/godot-version.md +6 -6
  277. package/library/references/godot-version/resource.yaml +22 -0
  278. package/library/references/headless-routing/headless-routing.md +46 -0
  279. package/library/references/headless-routing/resource.yaml +24 -0
  280. package/library/references/mcp-fresh-chat-playbook/mcp-fresh-chat-playbook.md +49 -0
  281. package/library/references/mcp-fresh-chat-playbook/resource.yaml +23 -0
  282. package/library/references/mcp-tools-reference/mcp-tools-reference.md +271 -0
  283. package/library/references/mcp-tools-reference/resource.yaml +17 -0
  284. package/library/references/product-map/product-map.md +103 -0
  285. package/library/references/product-map/resource.yaml +33 -0
  286. package/{references → library/references/public-surface-language}/public-surface-language.md +5 -7
  287. package/library/references/public-surface-language/resource.yaml +17 -0
  288. package/library/references/summer-folder/resource.yaml +20 -0
  289. package/{references → library/references/summer-folder}/summer-folder.md +22 -21
  290. package/{skills/rendering-and-lighting → library/skills}/3d-lighting/SKILL.md +15 -11
  291. package/library/skills/3d-lighting/resource.yaml +27 -0
  292. package/{skills/audio → library/skills}/adaptive-music/SKILL.md +1 -1
  293. package/library/skills/adaptive-music/resource.yaml +28 -0
  294. package/library/skills/agent-playtesting/SKILL.md +148 -0
  295. package/library/skills/agent-playtesting/resource.yaml +52 -0
  296. package/library/skills/ambient-bed/resource.yaml +24 -0
  297. package/{skills/video → library/skills}/animated-loop/SKILL.md +1 -1
  298. package/library/skills/animated-loop/resource.yaml +27 -0
  299. package/{skills/animation → library/skills}/animation-tree/SKILL.md +29 -14
  300. package/library/skills/animation-tree/resource.yaml +33 -0
  301. package/{skills/rendering-and-lighting → library/skills}/art-direction/SKILL.md +3 -3
  302. package/library/skills/art-direction/resource.yaml +29 -0
  303. package/{skills/asset-pipeline → library/skills}/asset-strategy/SKILL.md +44 -44
  304. package/library/skills/asset-strategy/resource.yaml +63 -0
  305. package/{skills/audio → library/skills}/audio-direction/SKILL.md +7 -7
  306. package/library/skills/audio-direction/resource.yaml +32 -0
  307. package/library/skills/auto-fire-targeting/resource.yaml +22 -0
  308. package/{skills/scene-and-project → library/skills}/brainstorm-game/SKILL.md +8 -8
  309. package/library/skills/brainstorm-game/resource.yaml +30 -0
  310. package/{skills/workflow → library/skills}/brainstorming/SKILL.md +2 -22
  311. package/library/skills/brainstorming/resource.yaml +23 -0
  312. package/{skills/workflow → library/skills}/brainstorming/spec-document-reviewer-prompt.md +1 -1
  313. package/{skills/scene-and-project → library/skills}/browse-templates/SKILL.md +18 -18
  314. package/library/skills/browse-templates/resource.yaml +23 -0
  315. package/library/skills/celeste-momentum-platforming/SKILL.md +366 -0
  316. package/library/skills/celeste-momentum-platforming/resource.yaml +33 -0
  317. package/library/skills/character-animation-wiring/SKILL.md +249 -0
  318. package/library/skills/character-animation-wiring/resource.yaml +39 -0
  319. package/{skills/3d-assets → library/skills}/character-model/SKILL.md +25 -25
  320. package/library/skills/character-model/resource.yaml +36 -0
  321. package/{skills/2d-assets → library/skills}/character-portrait/SKILL.md +14 -14
  322. package/library/skills/character-portrait/resource.yaml +30 -0
  323. package/{skills/video → library/skills}/cinematic-cutscene/SKILL.md +2 -2
  324. package/library/skills/cinematic-cutscene/resource.yaml +29 -0
  325. package/{skills/2d-assets → library/skills}/concept-art/SKILL.md +15 -15
  326. package/library/skills/concept-art/resource.yaml +34 -0
  327. package/{skills/2d-assets → library/skills}/create-asset-sheet/SKILL.md +8 -8
  328. package/library/skills/create-asset-sheet/resource.yaml +33 -0
  329. package/{skills/debugging → library/skills}/debug/SKILL.md +3 -3
  330. package/library/skills/debug/resource.yaml +31 -0
  331. package/{skills/workflow → library/skills}/debugging-game-feel/SKILL.md +11 -11
  332. package/library/skills/debugging-game-feel/resource.yaml +25 -0
  333. package/{skills/level-design → library/skills}/design-level/SKILL.md +6 -6
  334. package/library/skills/design-level/resource.yaml +31 -0
  335. package/{skills/gameplay-mechanics → library/skills}/design-mechanic/SKILL.md +3 -3
  336. package/library/skills/design-mechanic/resource.yaml +31 -0
  337. package/{skills/ai-and-npcs → library/skills}/design-npc/SKILL.md +7 -3
  338. package/library/skills/design-npc/resource.yaml +29 -0
  339. package/{skills/workflow → library/skills}/diagnosing-perf-regressions/SKILL.md +10 -10
  340. package/library/skills/diagnosing-perf-regressions/resource.yaml +25 -0
  341. package/{skills/workflow → library/skills}/dispatching-parallel-agents/SKILL.md +8 -8
  342. package/library/skills/dispatching-parallel-agents/resource.yaml +23 -0
  343. package/library/skills/driving-the-editor-ui/SKILL.md +85 -0
  344. package/library/skills/driving-the-editor-ui/resource.yaml +46 -0
  345. package/{skills/3d-assets → library/skills}/environment-kit/SKILL.md +11 -11
  346. package/library/skills/environment-kit/resource.yaml +29 -0
  347. package/{skills/deployment → library/skills}/export-and-ship/SKILL.md +5 -5
  348. package/library/skills/export-and-ship/resource.yaml +32 -0
  349. package/library/skills/fabricating-assets/SKILL.md +195 -0
  350. package/library/skills/fabricating-assets/resource.yaml +52 -0
  351. package/{skills/animation → library/skills}/facial-and-lipsync/SKILL.md +23 -11
  352. package/library/skills/facial-and-lipsync/resource.yaml +36 -0
  353. package/{skills/character-controllers → library/skills}/fps-controller/SKILL.md +8 -4
  354. package/library/skills/fps-controller/resource.yaml +29 -0
  355. package/{skills/visual-effects → library/skills}/game-feel/SKILL.md +7 -7
  356. package/library/skills/game-feel/resource.yaml +27 -0
  357. package/library/skills/gameskill/SKILL.md +64 -0
  358. package/library/skills/gameskill/resource.yaml +22 -0
  359. package/library/skills/gdscript-patterns/resource.yaml +23 -0
  360. package/{skills/animation → library/skills}/generate-motion/SKILL.md +16 -16
  361. package/library/skills/generate-motion/resource.yaml +34 -0
  362. package/library/skills/godogen-visual-proof-game-generation/SKILL.md +223 -0
  363. package/library/skills/godogen-visual-proof-game-generation/resource.yaml +33 -0
  364. package/{skills/workflow → library/skills}/headless-scripting/SKILL.md +14 -7
  365. package/library/skills/headless-scripting/resource.yaml +26 -0
  366. package/{skills/multiplayer-and-networking → library/skills}/host-authoritative-state/SKILL.md +1 -1
  367. package/library/skills/host-authoritative-state/resource.yaml +28 -0
  368. package/{skills/2d-assets → library/skills}/instantiate-asset-pack/SKILL.md +10 -12
  369. package/library/skills/instantiate-asset-pack/resource.yaml +29 -0
  370. package/{skills/workflow → library/skills}/investigating-bugs/SKILL.md +4 -4
  371. package/{skills/workflow → library/skills}/investigating-bugs/condition-based-waiting.md +8 -8
  372. package/library/skills/investigating-bugs/resource.yaml +24 -0
  373. package/{skills/workflow → library/skills}/investigating-bugs/root-cause-tracing.md +1 -7
  374. package/library/skills/lumera-single-image-scene-reconstruction/SKILL.md +164 -0
  375. package/library/skills/lumera-single-image-scene-reconstruction/resource.yaml +35 -0
  376. package/{skills/scene-and-project → library/skills}/make-game/SKILL.md +23 -23
  377. package/library/skills/make-game/resource.yaml +35 -0
  378. package/library/skills/music-track/resource.yaml +28 -0
  379. package/library/skills/navigate-summer/SKILL.md +61 -0
  380. package/library/skills/navigate-summer/resource.yaml +35 -0
  381. package/{skills/scene-and-project → library/skills}/new-project/SKILL.md +10 -10
  382. package/library/skills/new-project/resource.yaml +28 -0
  383. package/{skills/3d-assets → library/skills}/organic-model/SKILL.md +16 -16
  384. package/library/skills/organic-model/resource.yaml +32 -0
  385. package/{skills/multiplayer-and-networking → library/skills}/peer-to-peer-multiplayer/SKILL.md +2 -2
  386. package/library/skills/peer-to-peer-multiplayer/resource.yaml +28 -0
  387. package/{skills/2d-assets → library/skills}/pixel-art/SKILL.md +13 -13
  388. package/library/skills/pixel-art/resource.yaml +31 -0
  389. package/library/skills/play/resource.yaml +26 -0
  390. package/{skills/workflow → library/skills}/playtesting-a-feature/SKILL.md +41 -22
  391. package/library/skills/playtesting-a-feature/resource.yaml +31 -0
  392. package/{skills/animation → library/skills}/procedural-animation/SKILL.md +25 -10
  393. package/library/skills/procedural-animation/resource.yaml +33 -0
  394. package/{skills/3d-assets → library/skills}/prop-model/SKILL.md +13 -13
  395. package/library/skills/prop-model/resource.yaml +33 -0
  396. package/library/skills/psx-retro-rendering/SKILL.md +416 -0
  397. package/library/skills/psx-retro-rendering/resource.yaml +36 -0
  398. package/library/skills/realtime-wet-surfaces/SKILL.md +189 -0
  399. package/library/skills/realtime-wet-surfaces/resource.yaml +31 -0
  400. package/{skills/deployment → library/skills}/remote-deploy/SKILL.md +3 -3
  401. package/library/skills/remote-deploy/resource.yaml +23 -0
  402. package/{skills/animation → library/skills}/retarget/SKILL.md +15 -14
  403. package/library/skills/retarget/resource.yaml +33 -0
  404. package/library/skills/running-in-the-cloud/SKILL.md +103 -0
  405. package/library/skills/running-in-the-cloud/resource.yaml +33 -0
  406. package/{skills/scene-and-project → library/skills}/scene-composition/SKILL.md +9 -1
  407. package/library/skills/scene-composition/resource.yaml +27 -0
  408. package/library/skills/scene-hierarchy-design/SKILL.md +102 -0
  409. package/library/skills/scene-hierarchy-design/resource.yaml +31 -0
  410. package/library/skills/scene-scripting/SKILL.md +764 -0
  411. package/library/skills/scene-scripting/resource.yaml +58 -0
  412. package/{skills/level-design → library/skills}/scene-to-level/SKILL.md +16 -17
  413. package/library/skills/scene-to-level/resource.yaml +33 -0
  414. package/{skills/multiplayer-and-networking → library/skills}/setup-multiplayer/SKILL.md +1 -1
  415. package/library/skills/setup-multiplayer/resource.yaml +28 -0
  416. package/library/skills/skill-create/SKILL.md +138 -0
  417. package/library/skills/skill-create/resource.yaml +25 -0
  418. package/{skills/workflow → library/skills}/skill-improve/SKILL.md +2 -2
  419. package/library/skills/skill-improve/resource.yaml +25 -0
  420. package/{skills/workflow → library/skills}/skill-test/SKILL.md +4 -4
  421. package/library/skills/skill-test/resource.yaml +26 -0
  422. package/library/skills/skintokens-auto-rigging/SKILL.md +200 -0
  423. package/library/skills/skintokens-auto-rigging/resource.yaml +38 -0
  424. package/{skills/2d-assets → library/skills}/skybox-panorama/SKILL.md +8 -8
  425. package/library/skills/skybox-panorama/resource.yaml +28 -0
  426. package/{skills/audio → library/skills}/sound-effect/SKILL.md +2 -2
  427. package/library/skills/sound-effect/resource.yaml +27 -0
  428. package/library/skills/spatial-placement/SKILL.md +74 -0
  429. package/library/skills/spatial-placement/resource.yaml +42 -0
  430. package/library/skills/spatial-placement/tests/spec.md +65 -0
  431. package/{skills/2d-assets → library/skills}/sprite-sheet/SKILL.md +12 -12
  432. package/library/skills/sprite-sheet/resource.yaml +32 -0
  433. package/{skills/2d-assets → library/skills}/tileable-texture/SKILL.md +9 -9
  434. package/library/skills/tileable-texture/resource.yaml +31 -0
  435. package/{skills/video → library/skills}/trailer-shot/SKILL.md +1 -1
  436. package/library/skills/trailer-shot/resource.yaml +27 -0
  437. package/{skills/performance → library/skills}/tune-performance/SKILL.md +6 -6
  438. package/library/skills/tune-performance/resource.yaml +31 -0
  439. package/{skills/ui-and-ux → library/skills}/ui-basics/SKILL.md +1 -1
  440. package/library/skills/ui-basics/resource.yaml +25 -0
  441. package/{skills/2d-assets → library/skills}/ui-graphics/SKILL.md +11 -11
  442. package/library/skills/ui-graphics/resource.yaml +29 -0
  443. package/{skills/2d-assets → library/skills}/use-widget-asset/SKILL.md +4 -4
  444. package/library/skills/use-widget-asset/resource.yaml +29 -0
  445. package/{skills/workflow → library/skills}/using-summer/SKILL.md +12 -9
  446. package/library/skills/using-summer/resource.yaml +41 -0
  447. package/{skills/3d-assets → library/skills}/vehicle-model/SKILL.md +18 -18
  448. package/library/skills/vehicle-model/resource.yaml +34 -0
  449. package/{skills/workflow → library/skills}/verification-before-completion/SKILL.md +10 -10
  450. package/library/skills/verification-before-completion/resource.yaml +23 -0
  451. package/library/skills/verifying-scenes/SKILL.md +98 -0
  452. package/library/skills/verifying-scenes/resource.yaml +42 -0
  453. package/{skills/visual-effects/recipes/dissolve → library/skills/vfx-dissolve}/SKILL.md +31 -11
  454. package/library/skills/vfx-dissolve/resource.yaml +33 -0
  455. package/{skills/visual-effects/recipes/fire → library/skills/vfx-fire}/SKILL.md +43 -12
  456. package/library/skills/vfx-fire/_building-blocks/noise-3d-fbm.gdshaderinc +45 -0
  457. package/library/skills/vfx-fire/resource.yaml +35 -0
  458. package/{skills/visual-effects/recipes/hit-spark → library/skills/vfx-hit-spark}/SKILL.md +16 -10
  459. package/library/skills/vfx-hit-spark/_building-blocks/additive-billboard-particles.md +37 -0
  460. package/library/skills/vfx-hit-spark/resource.yaml +34 -0
  461. package/{skills/visual-effects/recipes/lightning → library/skills/vfx-lightning}/SKILL.md +24 -11
  462. package/library/skills/vfx-lightning/_building-blocks/additive-billboard-particles.md +37 -0
  463. package/library/skills/vfx-lightning/resource.yaml +33 -0
  464. package/{skills/visual-effects/recipes/magic-glow → library/skills/vfx-magic-glow}/SKILL.md +31 -11
  465. package/library/skills/vfx-magic-glow/_building-blocks/additive-billboard-particles.md +37 -0
  466. package/library/skills/vfx-magic-glow/resource.yaml +34 -0
  467. package/{skills/visual-effects/recipes/muzzle-flash → library/skills/vfx-muzzle-flash}/SKILL.md +29 -9
  468. package/library/skills/vfx-muzzle-flash/_building-blocks/additive-billboard-particles.md +37 -0
  469. package/library/skills/vfx-muzzle-flash/_building-blocks/trauma-shake-snippet.md +53 -0
  470. package/library/skills/vfx-muzzle-flash/resource.yaml +35 -0
  471. package/{skills/visual-effects/recipes/smoke → library/skills/vfx-smoke}/SKILL.md +35 -9
  472. package/library/skills/vfx-smoke/_building-blocks/noise-3d-fbm.gdshaderinc +45 -0
  473. package/library/skills/vfx-smoke/resource.yaml +32 -0
  474. package/{skills/visual-effects/recipes/water-ripple → library/skills/vfx-water-ripple}/SKILL.md +31 -9
  475. package/library/skills/vfx-water-ripple/_building-blocks/additive-billboard-particles.md +37 -0
  476. package/library/skills/vfx-water-ripple/resource.yaml +31 -0
  477. package/library/skills/voice-line/resource.yaml +27 -0
  478. package/library/skills/world-building-3d/SKILL.md +105 -0
  479. package/library/skills/world-building-3d/references/spatial-tools.md +50 -0
  480. package/library/skills/world-building-3d/resource.yaml +44 -0
  481. package/library/skills/world-building-3d/tests/spec.md +48 -0
  482. package/{skills/workflow → library/skills}/writing-plans/SKILL.md +19 -14
  483. package/library/skills/writing-plans/resource.yaml +23 -0
  484. package/{skills/workflow → library/skills}/writing-skills/SKILL.md +38 -44
  485. package/library/skills/writing-skills/resource.yaml +29 -0
  486. package/{skills/workflow → library/skills}/writing-skills/testing-skills-with-subagents.md +13 -14
  487. package/library/templates/2d-brario-platformer/resource.yaml +21 -0
  488. package/library/templates/2d-dungeon-roguelike/resource.yaml +23 -0
  489. package/library/templates/2d-grid-puzzle/resource.yaml +21 -0
  490. package/library/templates/2d-plants-and-zombies-tower-defense/resource.yaml +21 -0
  491. package/library/templates/2d-platformer/resource.yaml +24 -0
  492. package/library/templates/2d-rpg/resource.yaml +21 -0
  493. package/library/templates/2d-vampire-survivor-roguelike/resource.yaml +21 -0
  494. package/library/templates/3d-basic/resource.yaml +16 -0
  495. package/library/templates/3d-city-kit/resource.yaml +24 -0
  496. package/library/templates/3d-fps-old-school/resource.yaml +21 -0
  497. package/library/templates/3d-fps-simple-animated-npc/resource.yaml +21 -0
  498. package/library/templates/3d-lan-multiplayer-starter/resource.yaml +22 -0
  499. package/library/templates/3d-open-world-explore-tps/resource.yaml +21 -0
  500. package/library/templates/3d-procedural-road-world/resource.yaml +21 -0
  501. package/library/templates/3d-racing-game/resource.yaml +21 -0
  502. package/library/templates/3d-royale-clash-type/resource.yaml +21 -0
  503. package/library/templates/3d-third-person-controller/resource.yaml +21 -0
  504. package/library/templates/3d-voxel-sandbox/resource.yaml +24 -0
  505. package/library/templates/README.md +94 -0
  506. package/library/templates/empty/resource.yaml +16 -0
  507. package/library/tools/add-node/resource.yaml +60 -0
  508. package/library/tools/align-distribute-3d/resource.yaml +87 -0
  509. package/library/tools/api-docs/resource.yaml +57 -0
  510. package/library/tools/batch/resource.yaml +52 -0
  511. package/library/tools/camera-bookmark/resource.yaml +73 -0
  512. package/library/tools/check-job/resource.yaml +45 -0
  513. package/library/tools/clear-console/resource.yaml +40 -0
  514. package/library/tools/connect-signal/resource.yaml +63 -0
  515. package/library/tools/create-debug-report/resource.yaml +67 -0
  516. package/library/tools/create-scene/resource.yaml +59 -0
  517. package/library/tools/creator-config/resource.yaml +63 -0
  518. package/library/tools/creator-publish/resource.yaml +73 -0
  519. package/library/tools/creator-releases/resource.yaml +53 -0
  520. package/library/tools/fabricate-3d/resource.yaml +108 -0
  521. package/library/tools/game-control/resource.yaml +84 -0
  522. package/library/tools/game-input/resource.yaml +159 -0
  523. package/library/tools/game-probe/resource.yaml +90 -0
  524. package/library/tools/generate-3d/resource.yaml +112 -0
  525. package/library/tools/generate-audio/resource.yaml +80 -0
  526. package/library/tools/generate-image/resource.yaml +62 -0
  527. package/library/tools/generate-motion/resource.yaml +66 -0
  528. package/library/tools/generate-video/resource.yaml +66 -0
  529. package/library/tools/get-agent-playbook/resource.yaml +40 -0
  530. package/library/tools/get-asset/resource.yaml +42 -0
  531. package/library/tools/get-asset-download-url/resource.yaml +52 -0
  532. package/library/tools/get-console/resource.yaml +69 -0
  533. package/library/tools/get-debugger-errors/resource.yaml +56 -0
  534. package/library/tools/get-debugger-warnings/resource.yaml +52 -0
  535. package/library/tools/get-diagnostics/resource.yaml +42 -0
  536. package/library/tools/get-project-context/resource.yaml +45 -0
  537. package/library/tools/get-runtime-tree/resource.yaml +62 -0
  538. package/library/tools/get-scene-tree/resource.yaml +52 -0
  539. package/library/tools/get-script-errors/resource.yaml +45 -0
  540. package/library/tools/get-studio-workflow/resource.yaml +43 -0
  541. package/library/tools/import-asset/resource.yaml +73 -0
  542. package/library/tools/import-asset-by-id/resource.yaml +56 -0
  543. package/library/tools/import-from-url/resource.yaml +51 -0
  544. package/library/tools/import-from-url-batch/resource.yaml +60 -0
  545. package/library/tools/import-hdri/resource.yaml +69 -0
  546. package/library/tools/input-map-bind/resource.yaml +52 -0
  547. package/library/tools/inspect-node/resource.yaml +46 -0
  548. package/library/tools/inspect-resource/resource.yaml +45 -0
  549. package/library/tools/inspect-runtime-node/resource.yaml +54 -0
  550. package/library/tools/instantiate-scene/resource.yaml +62 -0
  551. package/library/tools/is-running/resource.yaml +40 -0
  552. package/library/tools/library-feedback/resource.yaml +89 -0
  553. package/library/tools/list-my-assets/resource.yaml +56 -0
  554. package/library/tools/navigation-probe/resource.yaml +85 -0
  555. package/library/tools/open/resource.yaml +80 -0
  556. package/library/tools/open-main-scene/resource.yaml +40 -0
  557. package/library/tools/open-scene/resource.yaml +46 -0
  558. package/library/tools/play/resource.yaml +91 -0
  559. package/library/tools/project-setting/resource.yaml +53 -0
  560. package/library/tools/read-file/resource.yaml +47 -0
  561. package/library/tools/read-library/resource.yaml +67 -0
  562. package/library/tools/recent-events/resource.yaml +71 -0
  563. package/library/tools/remove-node/resource.yaml +51 -0
  564. package/library/tools/replace-node/resource.yaml +57 -0
  565. package/library/tools/replace-text/resource.yaml +61 -0
  566. package/library/tools/run-editor-script/resource.yaml +61 -0
  567. package/library/tools/run-script/resource.yaml +73 -0
  568. package/library/tools/runtime-animate/resource.yaml +140 -0
  569. package/library/tools/runtime-call/resource.yaml +74 -0
  570. package/library/tools/runtime-set/resource.yaml +80 -0
  571. package/library/tools/runtime-spawn/resource.yaml +95 -0
  572. package/library/tools/save-scene/resource.yaml +50 -0
  573. package/library/tools/screenshot/resource.yaml +112 -0
  574. package/library/tools/search-assets/resource.yaml +67 -0
  575. package/library/tools/search-library/resource.yaml +81 -0
  576. package/library/tools/select-node/resource.yaml +48 -0
  577. package/library/tools/set-prop/resource.yaml +64 -0
  578. package/library/tools/set-resource-property/resource.yaml +66 -0
  579. package/library/tools/slice-asset-sheet/resource.yaml +47 -0
  580. package/library/tools/snap-to-surface/resource.yaml +90 -0
  581. package/library/tools/snapshot-diff/resource.yaml +58 -0
  582. package/library/tools/starcast/resource.yaml +120 -0
  583. package/library/tools/start-game-task/resource.yaml +91 -0
  584. package/library/tools/stop/resource.yaml +51 -0
  585. package/library/tools/test-placement/resource.yaml +109 -0
  586. package/library/tools/ui-actions/resource.yaml +77 -0
  587. package/library/tools/ui-activate/resource.yaml +88 -0
  588. package/library/tools/ui-screenshot/resource.yaml +63 -0
  589. package/library/tools/ui-tree/resource.yaml +69 -0
  590. package/library/tools/wait-for-event/resource.yaml +84 -0
  591. package/library/tools/world-snapshot/resource.yaml +60 -0
  592. package/library/tools/write-file/resource.yaml +54 -0
  593. package/package.json +22 -16
  594. package/registry/generated/aliases.json +207 -0
  595. package/registry/generated/counts.json +12 -0
  596. package/registry/generated/gemini-extension.json +122 -0
  597. package/registry/generated/index.json +7709 -0
  598. package/registry/generated/marketplace.claude.json +44 -0
  599. package/registry/generated/mcp.json +13 -0
  600. package/registry/generated/plugin.claude.json +135 -0
  601. package/registry/generated/plugin.codex.json +144 -0
  602. package/registry/generated/plugin.cursor.json +134 -0
  603. package/registry/generated/plugin.factory.json +117 -0
  604. package/registry/generated/skills-registry.json +851 -0
  605. package/registry/generated/templates-registry.json +455 -0
  606. package/registry/schemas/allowed-hosts.json +19 -0
  607. package/registry/schemas/collection.schema.json +68 -0
  608. package/registry/schemas/domains.json +96 -0
  609. package/registry/schemas/example.schema.json +11 -0
  610. package/registry/schemas/reference.schema.json +10 -0
  611. package/registry/schemas/resource.schema.json +154 -0
  612. package/registry/schemas/skill.schema.json +14 -0
  613. package/registry/schemas/template.schema.json +46 -0
  614. package/registry/schemas/tool.schema.json +61 -0
  615. package/_persona/summer/SKILL.md +0 -113
  616. package/dist/bin/postinstall.d.ts +0 -2
  617. package/dist/bin/postinstall.js +0 -3
  618. package/dist/commands/cloud.d.ts +0 -2
  619. package/dist/commands/cloud.js +0 -80
  620. package/dist/commands/create.d.ts +0 -3
  621. package/dist/commands/create.js +0 -171
  622. package/dist/commands/install.d.ts +0 -19
  623. package/dist/commands/install.js +0 -194
  624. package/dist/commands/list.js +0 -67
  625. package/dist/commands/logout.js +0 -13
  626. package/dist/commands/logs.d.ts +0 -2
  627. package/dist/commands/logs.js +0 -19
  628. package/dist/commands/open.d.ts +0 -2
  629. package/dist/commands/open.js +0 -32
  630. package/dist/commands/orchestrator.d.ts +0 -8
  631. package/dist/commands/orchestrator.js +0 -143
  632. package/dist/commands/run.d.ts +0 -2
  633. package/dist/commands/run.js +0 -167
  634. package/dist/commands/status.js +0 -46
  635. package/dist/lib/banner.d.ts +0 -4
  636. package/dist/lib/banner.js +0 -122
  637. package/dist/lib/cloud/api.d.ts +0 -79
  638. package/dist/lib/cloud/api.js +0 -107
  639. package/dist/lib/cloud/apply.d.ts +0 -32
  640. package/dist/lib/cloud/apply.js +0 -294
  641. package/dist/lib/cloud/checkpoint.d.ts +0 -26
  642. package/dist/lib/cloud/checkpoint.js +0 -142
  643. package/dist/lib/cloud/conflicts.d.ts +0 -55
  644. package/dist/lib/cloud/conflicts.js +0 -131
  645. package/dist/lib/cloud/containment.d.ts +0 -8
  646. package/dist/lib/cloud/containment.js +0 -52
  647. package/dist/lib/cloud/diff.d.ts +0 -39
  648. package/dist/lib/cloud/diff.js +0 -138
  649. package/dist/lib/cloud/engine-bridge.d.ts +0 -34
  650. package/dist/lib/cloud/engine-bridge.js +0 -139
  651. package/dist/lib/cloud/hash-cache.d.ts +0 -23
  652. package/dist/lib/cloud/hash-cache.js +0 -44
  653. package/dist/lib/cloud/hash.d.ts +0 -10
  654. package/dist/lib/cloud/hash.js +0 -111
  655. package/dist/lib/cloud/http.d.ts +0 -17
  656. package/dist/lib/cloud/http.js +0 -47
  657. package/dist/lib/cloud/lock-path.d.ts +0 -1
  658. package/dist/lib/cloud/lock-path.js +0 -5
  659. package/dist/lib/cloud/lock.d.ts +0 -14
  660. package/dist/lib/cloud/lock.js +0 -143
  661. package/dist/lib/cloud/manifest.d.ts +0 -6
  662. package/dist/lib/cloud/manifest.js +0 -41
  663. package/dist/lib/cloud/paths.d.ts +0 -20
  664. package/dist/lib/cloud/paths.js +0 -90
  665. package/dist/lib/cloud/project-godot-merge.d.ts +0 -32
  666. package/dist/lib/cloud/project-godot-merge.js +0 -185
  667. package/dist/lib/cloud/rules.d.ts +0 -39
  668. package/dist/lib/cloud/rules.js +0 -159
  669. package/dist/lib/cloud/sync.d.ts +0 -21
  670. package/dist/lib/cloud/sync.js +0 -518
  671. package/dist/lib/cloud/transfer.d.ts +0 -23
  672. package/dist/lib/cloud/transfer.js +0 -184
  673. package/dist/lib/cloud/types.d.ts +0 -62
  674. package/dist/lib/cloud/types.js +0 -1
  675. package/dist/lib/cloud/validate-path.d.ts +0 -23
  676. package/dist/lib/cloud/validate-path.js +0 -103
  677. package/dist/lib/engine.d.ts +0 -51
  678. package/dist/lib/game-task-plan.d.ts +0 -42
  679. package/dist/lib/project-memory.d.ts +0 -33
  680. package/dist/lib/public-surface-paths.d.ts +0 -13
  681. package/dist/lib/public-surface-paths.js +0 -42
  682. package/dist/lib/remote-templates.d.ts +0 -25
  683. package/dist/lib/remote-templates.js +0 -86
  684. package/dist/lib/skills-registry.d.ts +0 -572
  685. package/dist/lib/skills-registry.js +0 -1061
  686. package/dist/lib/version-check.d.ts +0 -106
  687. package/dist/mcp/tools/cloud-tools.js +0 -42
  688. package/references/mcp-tools-reference.md +0 -199
  689. package/references/template-registry.md +0 -73
  690. package/skills/README.md +0 -103
  691. package/skills/scene-and-project/summer-cloud/SKILL.md +0 -92
  692. package/skills/workflow/brainstorming/scripts/frame-template.html +0 -214
  693. package/skills/workflow/brainstorming/scripts/helper.js +0 -88
  694. package/skills/workflow/brainstorming/scripts/server.cjs +0 -354
  695. package/skills/workflow/brainstorming/scripts/start-server.sh +0 -148
  696. package/skills/workflow/brainstorming/scripts/stop-server.sh +0 -56
  697. package/skills/workflow/brainstorming/visual-companion.md +0 -287
  698. package/skills/workflow/gameskill/SKILL.md +0 -120
  699. package/skills/workflow/investigating-bugs/CREATION-LOG.md +0 -119
  700. package/skills/workflow/investigating-bugs/condition-based-waiting-example.ts +0 -158
  701. package/skills/workflow/investigating-bugs/find-polluter.sh +0 -63
  702. package/skills/workflow/investigating-bugs/test-academic.md +0 -14
  703. package/skills/workflow/investigating-bugs/test-pressure-1.md +0 -58
  704. package/skills/workflow/investigating-bugs/test-pressure-2.md +0 -68
  705. package/skills/workflow/investigating-bugs/test-pressure-3.md +0 -69
  706. package/skills/workflow/mcpupdate/SKILL.md +0 -134
  707. package/skills/workflow/skill-create/SKILL.md +0 -153
  708. package/skills/workflow/writing-skills/anthropic-best-practices.md +0 -1150
  709. package/skills/workflow/writing-skills/examples/CLAUDE_MD_TESTING.md +0 -189
  710. package/skills/workflow/writing-skills/graphviz-conventions.dot +0 -172
  711. package/skills/workflow/writing-skills/persuasion-principles.md +0 -187
  712. package/skills/workflow/writing-skills/render-graphs.js +0 -168
  713. /package/dist/{commands → cli/commands}/config.d.ts +0 -0
  714. /package/dist/{commands → cli/commands}/debug.d.ts +0 -0
  715. /package/dist/{commands → cli/commands}/list.d.ts +0 -0
  716. /package/dist/{commands → cli/commands}/login.d.ts +0 -0
  717. /package/dist/{commands → cli/commands}/plan.d.ts +0 -0
  718. /package/dist/{commands → cli/commands}/publish.d.ts +0 -0
  719. /package/dist/{commands → cli/commands}/releases.d.ts +0 -0
  720. /package/dist/{commands → cli/commands}/setup.d.ts +0 -0
  721. /package/dist/{commands → cli/commands}/skills.d.ts +0 -0
  722. /package/dist/{lib → core}/log-filters.d.ts +0 -0
  723. /package/dist/{lib → core}/mcp-log.d.ts +0 -0
  724. /package/dist/{lib → core}/store.d.ts +0 -0
  725. /package/dist/{lib → core}/summer-compatibility.d.ts +0 -0
  726. /package/dist/{lib → core}/telemetry.d.ts +0 -0
  727. /package/dist/{lib/mcp-boot-notice.js → mcp/boot-notice.js} +0 -0
  728. /package/dist/{commands/mcp.d.ts → mcp/command.d.ts} +0 -0
  729. /package/{references → library/references/collaborative-protocol}/collaborative-protocol.md +0 -0
  730. /package/{references → library/references/gd-style}/gd-style.md +0 -0
  731. /package/{skills/audio → library/skills}/ambient-bed/SKILL.md +0 -0
  732. /package/{skills/gameplay-mechanics → library/skills}/auto-fire-targeting/SKILL.md +0 -0
  733. /package/{skills/scripting-patterns → library/skills}/gdscript-patterns/SKILL.md +0 -0
  734. /package/{skills/scripting-patterns → library/skills}/gdscript-patterns/reference.md +0 -0
  735. /package/{skills/workflow → library/skills}/investigating-bugs/defense-in-depth.md +0 -0
  736. /package/{skills/audio → library/skills}/music-track/SKILL.md +0 -0
  737. /package/{skills/scene-and-project → library/skills}/play/SKILL.md +0 -0
  738. /package/{skills/visual-effects → library/skills/vfx-dissolve}/_building-blocks/noise-3d-fbm.gdshaderinc +0 -0
  739. /package/{skills/visual-effects → library/skills/vfx-fire}/_building-blocks/additive-billboard-particles.md +0 -0
  740. /package/{skills/visual-effects → library/skills/vfx-lightning}/_building-blocks/trauma-shake-snippet.md +0 -0
  741. /package/{skills/audio → library/skills}/voice-line/SKILL.md +0 -0
  742. /package/{skills/workflow → library/skills}/writing-plans/plan-document-reviewer-prompt.md +0 -0
@@ -1,5 +1,10 @@
1
1
  import { getClient, resetClient } from "../server.js";
2
- import { recordMcpSession } from "../../lib/telemetry.js";
2
+ import { recordMcpSession } from "../../core/telemetry.js";
3
+ import { thrownErrorClass } from "../../core/tool-errors.js";
4
+ import { extractOpError, getFailureReason, withOldEngineHint, } from "../../core/capabilities/engine-receipt.js";
5
+ export { extractOpError, withOldEngineHint };
6
+ export { missingEngineOpResult, } from "../../core/capability-skew.js";
7
+ export { ToolInputError, UnsupportedOperationError } from "../../core/tool-errors.js";
3
8
  export const WITH_ENGINE_META = Symbol("summerWithEngineMeta");
4
9
  function attachMeta(result, meta) {
5
10
  Object.defineProperty(result, WITH_ENGINE_META, {
@@ -9,33 +14,6 @@ function attachMeta(result, meta) {
9
14
  });
10
15
  return result;
11
16
  }
12
- function getFailureReason(value) {
13
- return typeof value.failureReason === "string"
14
- ? value.failureReason
15
- : typeof value.failure_reason === "string"
16
- ? value.failure_reason
17
- : undefined;
18
- }
19
- // 0.5.34 Block E contract (publicsummerengine src/lib/tools/contract.ts §0.1).
20
- // The async lifecycle (async-op-lifecycle.ts pollOpToTerminal) merges
21
- // terminalState/errorClass onto the apply dict it returns. ONLY these two are
22
- // "applied something / applied nothing-on-purpose" — every other terminal state
23
- // means the op did NOT land and must be surfaced as a failure, not masked.
24
- const SUCCESS_TERMINAL_STATES = new Set(["applied", "no_op"]);
25
- // Human-readable fallback when the engine reports a failure terminalState but no
26
- // `error` string (queue-full / lease-reject / identity-mismatch / no-progress
27
- // timeout frequently arrive with terminalState set and results[] absent).
28
- const TERMINAL_STATE_MESSAGES = {
29
- timed_out: "Engine operation timed out. Its final state is unknown; inspect the target before retrying.",
30
- still_queued: "Summer Engine accepted the operation, but it was still queued when the client stopped waiting. It may still run; do not retry blindly.",
31
- still_running: "Summer Engine accepted and started the operation, but no final receipt arrived. It may still be running or may already have applied; inspect the target before retrying.",
32
- uncertain: "Summer Engine did not provide a final operation receipt. The current state is uncertain; inspect the target before retrying.",
33
- not_connected: "Summer Engine is not connected (terminalState: not_connected). Nothing was applied.",
34
- identity_mismatch: "Operation rejected — wrong project/instance (terminalState: identity_mismatch). Nothing was mutated.",
35
- content_mismatch: "Operation rejected — content changed since last read (terminalState: content_mismatch). Nothing was applied.",
36
- denied: "Operation denied (terminalState: denied). Nothing was applied.",
37
- canceled: "Operation canceled (terminalState: canceled). Nothing was applied.",
38
- };
39
17
  /** Pull the failure classifiers off an engine envelope for logging (best-effort,
40
18
  * shape-tolerant). Does not decide success/failure — that stays in
41
19
  * extractOpError. */
@@ -50,73 +28,6 @@ function readClassifiers(result) {
50
28
  failureReason: getFailureReason(op) ?? (failed ? getFailureReason(failed) : undefined),
51
29
  };
52
30
  }
53
- /**
54
- * Decide whether an engine result envelope represents a FAILURE, and if so
55
- * return a model-visible message. Returns null only for genuine success.
56
- *
57
- * Guards the two web bug classes (publicsummerengine cf17134f + contract.ts
58
- * `isFailureSignal`):
59
- * - a failure `terminalState` (anything other than applied/no_op) is a failure
60
- * even when results[] is absent — the cf17134f "no-results envelope looked
61
- * applied" masking. The poll loop surfaces timed_out/etc. here.
62
- * - an explicit ok:false / status:"error" / failed op inside results[].
63
- *
64
- * Exported for unit tests.
65
- */
66
- export function extractOpError(result) {
67
- if (!result || typeof result !== "object")
68
- return null;
69
- const op = result;
70
- const firstFailed = op.results?.find((r) => r.ok === false);
71
- // The engine stamps failure classifiers on the envelope OR per-op inside
72
- // results[] (the batch gate does the latter) — read both.
73
- const failureReason = getFailureReason(op) ?? (firstFailed ? getFailureReason(firstFailed) : undefined);
74
- // Classified failures are rendered as JSON so callers can reliably read
75
- // failure_reason instead of scraping a sentence. A plain-text "Hint:" line may
76
- // follow the JSON in the final tool text. Unclassified failures stay plain.
77
- const classify = (message) => {
78
- if (!failureReason)
79
- return message;
80
- return JSON.stringify({
81
- error: message,
82
- failure_reason: failureReason,
83
- ...(typeof firstFailed?.error === "string" && firstFailed.error.length > 0 && firstFailed.error !== message
84
- ? { op_error: firstFailed.error }
85
- : {}),
86
- ...(typeof firstFailed?.op === "string" ? { op: firstFailed.op } : {}),
87
- ...(typeof op.terminalState === "string" ? { terminalState: op.terminalState } : {}),
88
- ...(typeof op.errorClass === "string" ? { errorClass: op.errorClass } : {}),
89
- }, null, 2);
90
- };
91
- // Failure terminalState takes precedence — it is set by the async lifecycle
92
- // exactly when the op did not land (timeout, backpressure, lease/identity
93
- // rejection, cancellation), sometimes with NO results[] to inspect. Prefer the
94
- // precise engine rejection (envelope error, then the failed op's error) over
95
- // the generic terminal-state sentence.
96
- const ts = op.terminalState;
97
- if (typeof ts === "string" && ts.length > 0 && !SUCCESS_TERMINAL_STATES.has(ts)) {
98
- const message = (typeof op.error === "string" && op.error.length > 0 && op.error) ||
99
- (typeof firstFailed?.error === "string" && firstFailed.error.length > 0 && firstFailed.error) ||
100
- TERMINAL_STATE_MESSAGES[ts] ||
101
- `Engine operation failed (terminalState: ${ts}).`;
102
- return classify(message);
103
- }
104
- // An explicit ok:false / status:"error" / failed op inside results[] is a
105
- // failure even when the engine omitted an error string — surface it rather
106
- // than mask it (matches the web contract `isFailureSignal`). The envelope
107
- // error is kept when present; the failed op's own error backs it up.
108
- if (op.ok === false || op.status === "error" || firstFailed) {
109
- const message = (typeof op.error === "string" && op.error.length > 0 && op.error) ||
110
- (typeof firstFailed?.error === "string" && firstFailed.error.length > 0 && firstFailed.error) ||
111
- (firstFailed
112
- ? `Engine op failed${firstFailed.op ? ` (${firstFailed.op})` : ""}.`
113
- : op.ok === false
114
- ? "Engine operation failed (ok: false)."
115
- : "Engine operation failed (status: error).");
116
- return classify(message);
117
- }
118
- return null;
119
- }
120
31
  /**
121
32
  * An auth failure is the ONE class of thrown error that is provably pre-apply:
122
33
  * the engine rejects on the Bearer-token check (tool_net_thread.cpp::_validate_auth)
@@ -212,6 +123,18 @@ export async function withEngine(fn, opts) {
212
123
  return attachMeta({ content: [{ type: "text", text: JSON.stringify(result, null, 2) }] }, meta);
213
124
  }
214
125
  catch (err) {
126
+ // A tagged pre-apply throw (argument validation, or a client that cannot
127
+ // perform the op at all) never reached the engine: keep the cached
128
+ // client, skip the transport recovery recipe, and say so.
129
+ const preApply = thrownErrorClass(err);
130
+ if (preApply) {
131
+ return attachMeta(preApplyFailureResult(preApply, err), {
132
+ errorClass: preApply,
133
+ failureReason: PRE_APPLY_FAILURE_REASON[preApply],
134
+ retried,
135
+ boundProjectIdHash,
136
+ });
137
+ }
215
138
  // Drop the cached client (it may point at a dead/rotated engine). Retry
216
139
  // once only for a provably pre-apply auth failure; anything else surfaces.
217
140
  resetClient();
@@ -222,5 +145,46 @@ export async function withEngine(fn, opts) {
222
145
  }
223
146
  }
224
147
  const msg = lastError instanceof Error ? lastError.message : String(lastError);
225
- return attachMeta({ content: [{ type: "text", text: msg }], isError: true }, { errorClass: "transport", retried, boundProjectIdHash });
148
+ return attachMeta({ content: [{ type: "text", text: withTransportRecovery(msg) }], isError: true }, { errorClass: "transport", retried, boundProjectIdHash });
149
+ }
150
+ const PRE_APPLY_FAILURE_REASON = {
151
+ input: "invalid_input",
152
+ unsupported: "unsupported_operation",
153
+ };
154
+ /** Model-visible result for a throw that is provably pre-apply. Rendered as
155
+ * JSON like every other classified failure (callers read failure_reason
156
+ * instead of scraping a sentence); `sent:false` is the load-bearing bit —
157
+ * no mutation could have landed, so the model may fix the call and retry. */
158
+ function preApplyFailureResult(errorClass, err) {
159
+ const message = err instanceof Error ? err.message : String(err);
160
+ return {
161
+ isError: true,
162
+ content: [{
163
+ type: "text",
164
+ text: JSON.stringify({
165
+ error: message,
166
+ failure_reason: PRE_APPLY_FAILURE_REASON[errorClass],
167
+ errorClass,
168
+ sent: false,
169
+ hint: errorClass === "input"
170
+ ? "Nothing was sent to the engine. Fix the argument named in the error and call again — no inspection needed."
171
+ : "Nothing was sent or applied. This client cannot perform the operation; use the alternative named in the error.",
172
+ }, null, 2),
173
+ }],
174
+ };
175
+ }
176
+ /** Every transport-level failure must TEACH recovery, not just name the error.
177
+ * getClient()'s connect failure already carries its own instructions; anything
178
+ * else (fetch failed / abort / HTTP status thrown mid-call) gets the generic
179
+ * recovery recipe appended. Exported for unit tests. */
180
+ export function withTransportRecovery(message) {
181
+ // Connect-path failures already prescribe (server.ts getClient appends the
182
+ // "Open the intended project…" instructions). Don't stack a second recipe.
183
+ if (message.includes("summer-engine run") || message.includes("summer-engine@latest run"))
184
+ return message;
185
+ return (message +
186
+ "\n\nRecovery: (1) check the engine is running and responsive — summer_get_project_context here, or `summer doctor` in a shell; " +
187
+ "(2) if this was a MUTATION, do NOT blind-retry — it may have partially applied; inspect the target first (summer_get_scene_tree / summer_world_snapshot / summer_read_file); " +
188
+ "(3) if the call was large or long-running, break it into smaller scripts/batches and re-run piece by piece; " +
189
+ "(4) if the engine restarted, the next tool call reconnects automatically — just retry a READ to confirm.");
226
190
  }
@@ -0,0 +1,36 @@
1
+ export declare const PROJECT_MANIFEST_RELPATH = ".summer/project.json";
2
+ export type ProjectTemplateRecord = {
3
+ id: string;
4
+ version: string;
5
+ builtin: true;
6
+ } | {
7
+ id: string;
8
+ version: string;
9
+ repo: string;
10
+ commit: string;
11
+ tree_digest: string;
12
+ };
13
+ export interface ProjectManifest {
14
+ template?: ProjectTemplateRecord;
15
+ toolkit_version?: string;
16
+ /** Summer Engine version seen at create time; absent when no engine was reachable. */
17
+ engine_version?: string;
18
+ created_at?: string;
19
+ [key: string]: unknown;
20
+ }
21
+ export declare function projectManifestPath(projectDir: string): string;
22
+ export declare function readProjectManifest(projectDir: string): ProjectManifest | null;
23
+ export interface ProjectManifestPatch {
24
+ template: ProjectTemplateRecord;
25
+ toolkit_version: string;
26
+ /** Recorded when given; an existing value survives a patch without one. */
27
+ engine_version?: string;
28
+ /** Override for tests; defaults to now. Only used when the file has no created_at yet. */
29
+ now?: () => Date;
30
+ }
31
+ /**
32
+ * Write (or merge into) `.summer/project.json`. Existing keys are preserved;
33
+ * `template` and `toolkit_version` (and `engine_version` when given) are
34
+ * replaced; `created_at` is set once.
35
+ */
36
+ export declare function writeProjectManifest(projectDir: string, patch: ProjectManifestPatch): ProjectManifest;
@@ -0,0 +1,50 @@
1
+ /**
2
+ * `.summer/project.json` — the project manifest (CONTRACT.md §8).
3
+ *
4
+ * Written by `summer create` so a fresh agent can answer "exactly which
5
+ * template, at which commit, built this project" without the original
6
+ * conversation. Merged, never clobbered: any other keys already in the file
7
+ * survive a rewrite.
8
+ */
9
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
10
+ import { dirname, join } from "node:path";
11
+ export const PROJECT_MANIFEST_RELPATH = ".summer/project.json";
12
+ export function projectManifestPath(projectDir) {
13
+ return join(projectDir, PROJECT_MANIFEST_RELPATH);
14
+ }
15
+ export function readProjectManifest(projectDir) {
16
+ const file = projectManifestPath(projectDir);
17
+ if (!existsSync(file))
18
+ return null;
19
+ let parsed;
20
+ try {
21
+ parsed = JSON.parse(readFileSync(file, "utf-8"));
22
+ }
23
+ catch (err) {
24
+ throw new Error(`${file} exists but is not valid JSON: ${err.message}`);
25
+ }
26
+ if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed)) {
27
+ throw new Error(`${file} exists but is not a JSON object`);
28
+ }
29
+ return parsed;
30
+ }
31
+ /**
32
+ * Write (or merge into) `.summer/project.json`. Existing keys are preserved;
33
+ * `template` and `toolkit_version` (and `engine_version` when given) are
34
+ * replaced; `created_at` is set once.
35
+ */
36
+ export function writeProjectManifest(projectDir, patch) {
37
+ const existing = readProjectManifest(projectDir) ?? {};
38
+ const now = patch.now ?? (() => new Date());
39
+ const manifest = {
40
+ ...existing,
41
+ template: patch.template,
42
+ toolkit_version: patch.toolkit_version,
43
+ ...(patch.engine_version ? { engine_version: patch.engine_version } : {}),
44
+ created_at: typeof existing.created_at === "string" ? existing.created_at : now().toISOString(),
45
+ };
46
+ const file = projectManifestPath(projectDir);
47
+ mkdirSync(dirname(file), { recursive: true });
48
+ writeFileSync(file, `${JSON.stringify(manifest, null, 2)}\n`, "utf-8");
49
+ return manifest;
50
+ }
@@ -0,0 +1,57 @@
1
+ import { type ProjectTemplateRecord } from "./project-manifest.js";
2
+ export interface ProjectMemoryFileSummary {
3
+ path: string;
4
+ kind: string;
5
+ title: string | null;
6
+ modifiedTime: string;
7
+ bytes: number;
8
+ locked: boolean;
9
+ }
10
+ /**
11
+ * The template pin `summer create` records in `.summer/project.json`
12
+ * (CONTRACT.md §8): which template, at which commit, started this project,
13
+ * plus the toolkit (and, when known, engine) version that created it. It is
14
+ * project memory — the first fact a fresh agent needs — so it is surfaced
15
+ * next to GameSoul/build-plan instead of being a file nobody reads.
16
+ */
17
+ export interface ProjectPinSummary {
18
+ /** Project-relative path of the manifest. */
19
+ path: string;
20
+ template: ProjectTemplateRecord | null;
21
+ toolkit_version: string | null;
22
+ engine_version: string | null;
23
+ created_at: string | null;
24
+ }
25
+ export interface ProjectMemorySummary {
26
+ present: boolean;
27
+ root: ".summer";
28
+ reason?: string;
29
+ /** `.summer/project.json`, or null when the project has no pin (created
30
+ * outside `summer create`). */
31
+ pin: ProjectPinSummary | null;
32
+ /** Set when project.json exists but could not be read as a JSON object. */
33
+ pinError?: string;
34
+ canonical: {
35
+ gameSoul: ProjectMemoryFileSummary | null;
36
+ artBible: ProjectMemoryFileSummary | null;
37
+ audioBible: ProjectMemoryFileSummary | null;
38
+ buildPlan: ProjectMemoryFileSummary | null;
39
+ legacyVoiceCast: ProjectMemoryFileSummary | null;
40
+ };
41
+ structured: {
42
+ present: boolean;
43
+ indexPresent: boolean;
44
+ fileCount: number;
45
+ lockedCount: number;
46
+ files: ProjectMemoryFileSummary[];
47
+ truncated: boolean;
48
+ };
49
+ files: ProjectMemoryFileSummary[];
50
+ guidance: string;
51
+ }
52
+ export declare function getProjectMemorySummary(projectPath: string | null | undefined, options?: {
53
+ maxFiles?: number;
54
+ }): ProjectMemorySummary;
55
+ /** One line for status/doctor output: `template/<id>@<version>` (+ `builtin`
56
+ * or the short commit), or null when the project has no pin. */
57
+ export declare function formatProjectPin(pin: ProjectPinSummary | null): string | null;
@@ -1,5 +1,6 @@
1
1
  import { closeSync, existsSync, openSync, readSync, readdirSync, statSync, } from "node:fs";
2
2
  import { join, relative, sep } from "node:path";
3
+ import { PROJECT_MANIFEST_RELPATH, readProjectManifest, } from "./project-manifest.js";
3
4
  const CANONICAL_FILES = [
4
5
  { key: "gameSoul", relativePath: ".summer/GameSoul.md", kind: "brief" },
5
6
  { key: "artBible", relativePath: ".summer/art-bible.md", kind: "art" },
@@ -33,9 +34,12 @@ export function getProjectMemorySummary(projectPath, options = {}) {
33
34
  ? scanMarkdownFiles(projectPath, memoryDir, maxFiles)
34
35
  : [];
35
36
  const indexPath = join(projectPath, ".summer", "memory", "index.json");
37
+ const { pin, pinError } = readProjectPin(projectPath);
36
38
  return {
37
39
  present: true,
38
40
  root: ".summer",
41
+ pin,
42
+ ...(pinError ? { pinError } : {}),
39
43
  canonical,
40
44
  structured: {
41
45
  present: existsSync(memoryDir),
@@ -49,10 +53,52 @@ export function getProjectMemorySummary(projectPath, options = {}) {
49
53
  guidance: "Read relevant .summer Markdown before creative, audio, dialogue, level, or character work. Ask before writing .summer files. Changing priority: locked memory requires explicit user confirmation.",
50
54
  };
51
55
  }
56
+ /** The manifest as memory. A missing file is a null pin (not an error); an
57
+ * unreadable one is reported, never thrown — a summary must not fail
58
+ * because one file is corrupt. */
59
+ function readProjectPin(projectPath) {
60
+ let manifest;
61
+ try {
62
+ manifest = readProjectManifest(projectPath);
63
+ }
64
+ catch (error) {
65
+ return {
66
+ pin: null,
67
+ pinError: error instanceof Error ? error.message : String(error),
68
+ };
69
+ }
70
+ if (!manifest)
71
+ return { pin: null };
72
+ const template = manifest.template;
73
+ const templateRecord = template && typeof template === "object" && typeof template.id === "string"
74
+ ? template
75
+ : null;
76
+ return {
77
+ pin: {
78
+ path: PROJECT_MANIFEST_RELPATH,
79
+ template: templateRecord,
80
+ toolkit_version: typeof manifest.toolkit_version === "string" ? manifest.toolkit_version : null,
81
+ engine_version: typeof manifest.engine_version === "string" ? manifest.engine_version : null,
82
+ created_at: typeof manifest.created_at === "string" ? manifest.created_at : null,
83
+ },
84
+ };
85
+ }
86
+ /** One line for status/doctor output: `template/<id>@<version>` (+ `builtin`
87
+ * or the short commit), or null when the project has no pin. */
88
+ export function formatProjectPin(pin) {
89
+ if (!pin)
90
+ return null;
91
+ if (!pin.template)
92
+ return `pin without template (${pin.path})`;
93
+ const template = pin.template;
94
+ const origin = "builtin" in template ? "builtin" : template.commit.slice(0, 12);
95
+ return `${template.id}@${template.version} (${origin})`;
96
+ }
52
97
  function createEmptySummary() {
53
98
  return {
54
99
  present: false,
55
100
  root: ".summer",
101
+ pin: null,
56
102
  canonical: {
57
103
  gameSoul: null,
58
104
  artBible: null,
@@ -1,12 +1,17 @@
1
1
  {
2
+ "_generated": "GENERATED from integrations/gemini — do not edit; npm run generate:registry",
2
3
  "name": "summer",
3
- "version": "2.5.1",
4
+ "version": "3.0.0",
4
5
  "description": "Agent tooling for Summer Engine: MCP bridge, context primer, and game-dev skills. Use with the npm CLI for skill files on disk.",
5
6
  "contextFileName": "GEMINI.md",
6
7
  "mcpServers": {
7
8
  "summer-engine": {
8
9
  "command": "npx",
9
- "args": ["summer-engine", "mcp"],
10
+ "args": [
11
+ "-y",
12
+ "summer-engine@latest",
13
+ "mcp"
14
+ ],
10
15
  "cwd": "${extensionPath}"
11
16
  }
12
17
  },
@@ -17,5 +22,101 @@
17
22
  "envVar": "SUMMER_PRE_COMMIT_DOCTOR",
18
23
  "sensitive": false
19
24
  }
25
+ ],
26
+ "skills": [
27
+ "./library/skills/3d-lighting/",
28
+ "./library/skills/adaptive-music/",
29
+ "./library/skills/agent-playtesting/",
30
+ "./library/skills/ambient-bed/",
31
+ "./library/skills/animated-loop/",
32
+ "./library/skills/animation-tree/",
33
+ "./library/skills/art-direction/",
34
+ "./library/skills/asset-strategy/",
35
+ "./library/skills/audio-direction/",
36
+ "./library/skills/auto-fire-targeting/",
37
+ "./library/skills/brainstorm-game/",
38
+ "./library/skills/brainstorming/",
39
+ "./library/skills/browse-templates/",
40
+ "./library/skills/celeste-momentum-platforming/",
41
+ "./library/skills/character-animation-wiring/",
42
+ "./library/skills/character-model/",
43
+ "./library/skills/character-portrait/",
44
+ "./library/skills/cinematic-cutscene/",
45
+ "./library/skills/concept-art/",
46
+ "./library/skills/create-asset-sheet/",
47
+ "./library/skills/debug/",
48
+ "./library/skills/debugging-game-feel/",
49
+ "./library/skills/design-level/",
50
+ "./library/skills/design-mechanic/",
51
+ "./library/skills/design-npc/",
52
+ "./library/skills/diagnosing-perf-regressions/",
53
+ "./library/skills/dispatching-parallel-agents/",
54
+ "./library/skills/driving-the-editor-ui/",
55
+ "./library/skills/environment-kit/",
56
+ "./library/skills/export-and-ship/",
57
+ "./library/skills/fabricating-assets/",
58
+ "./library/skills/facial-and-lipsync/",
59
+ "./library/skills/fps-controller/",
60
+ "./library/skills/game-feel/",
61
+ "./library/skills/gameskill/",
62
+ "./library/skills/gdscript-patterns/",
63
+ "./library/skills/generate-motion/",
64
+ "./library/skills/godogen-visual-proof-game-generation/",
65
+ "./library/skills/headless-scripting/",
66
+ "./library/skills/host-authoritative-state/",
67
+ "./library/skills/instantiate-asset-pack/",
68
+ "./library/skills/investigating-bugs/",
69
+ "./library/skills/lumera-single-image-scene-reconstruction/",
70
+ "./library/skills/make-game/",
71
+ "./library/skills/music-track/",
72
+ "./library/skills/navigate-summer/",
73
+ "./library/skills/new-project/",
74
+ "./library/skills/organic-model/",
75
+ "./library/skills/peer-to-peer-multiplayer/",
76
+ "./library/skills/pixel-art/",
77
+ "./library/skills/play/",
78
+ "./library/skills/playtesting-a-feature/",
79
+ "./library/skills/procedural-animation/",
80
+ "./library/skills/prop-model/",
81
+ "./library/skills/psx-retro-rendering/",
82
+ "./library/skills/realtime-wet-surfaces/",
83
+ "./library/skills/remote-deploy/",
84
+ "./library/skills/retarget/",
85
+ "./library/skills/running-in-the-cloud/",
86
+ "./library/skills/scene-composition/",
87
+ "./library/skills/scene-hierarchy-design/",
88
+ "./library/skills/scene-scripting/",
89
+ "./library/skills/scene-to-level/",
90
+ "./library/skills/setup-multiplayer/",
91
+ "./library/skills/skill-create/",
92
+ "./library/skills/skill-improve/",
93
+ "./library/skills/skill-test/",
94
+ "./library/skills/skintokens-auto-rigging/",
95
+ "./library/skills/skybox-panorama/",
96
+ "./library/skills/sound-effect/",
97
+ "./library/skills/spatial-placement/",
98
+ "./library/skills/sprite-sheet/",
99
+ "./library/skills/tileable-texture/",
100
+ "./library/skills/trailer-shot/",
101
+ "./library/skills/tune-performance/",
102
+ "./library/skills/ui-basics/",
103
+ "./library/skills/ui-graphics/",
104
+ "./library/skills/use-widget-asset/",
105
+ "./library/skills/using-summer/",
106
+ "./library/skills/vehicle-model/",
107
+ "./library/skills/verification-before-completion/",
108
+ "./library/skills/verifying-scenes/",
109
+ "./library/skills/vfx-dissolve/",
110
+ "./library/skills/vfx-fire/",
111
+ "./library/skills/vfx-hit-spark/",
112
+ "./library/skills/vfx-lightning/",
113
+ "./library/skills/vfx-magic-glow/",
114
+ "./library/skills/vfx-muzzle-flash/",
115
+ "./library/skills/vfx-smoke/",
116
+ "./library/skills/vfx-water-ripple/",
117
+ "./library/skills/voice-line/",
118
+ "./library/skills/world-building-3d/",
119
+ "./library/skills/writing-plans/",
120
+ "./library/skills/writing-skills/"
20
121
  ]
21
122
  }
@@ -9,9 +9,9 @@
9
9
  "timeout": 10
10
10
  }
11
11
  ],
12
- "preToolUse": [
12
+ "beforeShellExecution": [
13
13
  {
14
- "matcher": "Bash(git commit*)",
14
+ "matcher": "git\\s+commit",
15
15
  "command": "./hooks/run-hook.cmd pre-commit-doctor",
16
16
  "async": false,
17
17
  "timeout": 30
package/hooks/hooks.json CHANGED
@@ -16,11 +16,12 @@
16
16
  ],
17
17
  "PreToolUse": [
18
18
  {
19
- "matcher": "Bash(git commit*)",
19
+ "matcher": "Bash",
20
20
  "hooks": [
21
21
  {
22
22
  "type": "command",
23
23
  "command": "\"${CLAUDE_PLUGIN_ROOT}/hooks/run-hook.cmd\" pre-commit-doctor",
24
+ "if": "Bash(git commit*)",
24
25
  "async": false,
25
26
  "timeout": 30
26
27
  }