summer-engine 2.8.1 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (742) hide show
  1. package/.claude-plugin/marketplace.json +27 -7
  2. package/.claude-plugin/plugin.json +99 -83
  3. package/.codex-plugin/plugin.json +112 -82
  4. package/.cursor-plugin/plugin.json +119 -83
  5. package/.factory-plugin/plugin.json +100 -3
  6. package/.mcp.json +6 -1
  7. package/.opencode/INSTALL.md +7 -4
  8. package/.opencode/plugins/summer.js +31 -18
  9. package/AGENTS.md +107 -34
  10. package/CHANGELOG.md +134 -41
  11. package/CLAUDE.md +4 -2
  12. package/GEMINI.md +7 -53
  13. package/NOTICE +31 -0
  14. package/README.md +159 -391
  15. package/assets/api-docs.json.gz +0 -0
  16. package/assets/autopilot/README.md +20 -6
  17. package/assets/autopilot/autopilot.gd +80 -26
  18. package/assets/autopilot/run.sh +132 -7
  19. package/assets/navigation/web-routes.json +719 -0
  20. package/commands/gameskill.md +10 -108
  21. package/commands/summer.md +72 -4
  22. package/dist/bin/summer.js +6 -87
  23. package/dist/cli/banner.d.ts +1 -0
  24. package/dist/cli/banner.js +33 -0
  25. package/dist/{commands → cli/commands}/config.js +1 -1
  26. package/dist/cli/commands/create.d.ts +30 -0
  27. package/dist/cli/commands/create.js +212 -0
  28. package/dist/{commands → cli/commands}/debug.js +2 -2
  29. package/dist/cli/commands/doctor.d.ts +2 -0
  30. package/dist/cli/commands/doctor.js +18 -0
  31. package/dist/cli/commands/events.d.ts +57 -0
  32. package/dist/cli/commands/events.js +158 -0
  33. package/dist/cli/commands/install.d.ts +50 -0
  34. package/dist/cli/commands/install.js +447 -0
  35. package/dist/cli/commands/list.js +72 -0
  36. package/dist/{commands → cli/commands}/login.js +33 -17
  37. package/dist/{commands → cli/commands}/logout.d.ts +1 -0
  38. package/dist/cli/commands/logout.js +19 -0
  39. package/dist/{commands → cli/commands}/memory.d.ts +1 -8
  40. package/dist/{commands → cli/commands}/memory.js +20 -11
  41. package/dist/cli/commands/open.d.ts +45 -0
  42. package/dist/cli/commands/open.js +216 -0
  43. package/dist/{commands → cli/commands}/plan.js +2 -2
  44. package/dist/{commands → cli/commands}/publish.js +1 -1
  45. package/dist/{commands → cli/commands}/releases.js +1 -1
  46. package/dist/cli/commands/run.d.ts +19 -0
  47. package/dist/cli/commands/run.js +255 -0
  48. package/dist/{commands → cli/commands}/setup.js +43 -89
  49. package/dist/{commands → cli/commands}/skills.js +85 -222
  50. package/dist/{commands → cli/commands}/status.d.ts +1 -0
  51. package/dist/cli/commands/status.js +62 -0
  52. package/dist/cli/commands/tool.d.ts +11 -0
  53. package/dist/cli/commands/tool.js +121 -0
  54. package/dist/cli/index.d.ts +6 -0
  55. package/dist/cli/index.js +89 -0
  56. package/dist/cli/root-action.d.ts +7 -0
  57. package/dist/cli/root-action.js +15 -0
  58. package/dist/{lib → core}/api-client.d.ts +106 -15
  59. package/dist/{lib → core}/api-client.js +267 -75
  60. package/dist/{lib → core}/async-op-lifecycle.d.ts +3 -4
  61. package/dist/{lib → core}/async-op-lifecycle.js +3 -4
  62. package/dist/{lib → core}/auth.d.ts +14 -6
  63. package/dist/{lib → core}/auth.js +56 -40
  64. package/dist/core/capabilities/agent-playbook.d.ts +20 -0
  65. package/dist/core/capabilities/agent-playbook.js +218 -0
  66. package/dist/core/capabilities/api-docs.d.ts +36 -0
  67. package/dist/core/capabilities/api-docs.js +118 -0
  68. package/dist/core/capabilities/asset-import.d.ts +49 -0
  69. package/dist/core/capabilities/asset-import.js +134 -0
  70. package/dist/core/capabilities/camera-view.d.ts +98 -0
  71. package/dist/core/capabilities/camera-view.js +222 -0
  72. package/dist/core/capabilities/capture.d.ts +63 -0
  73. package/dist/core/capabilities/capture.js +67 -0
  74. package/dist/core/capabilities/console-read.d.ts +17 -0
  75. package/dist/core/capabilities/console-read.js +21 -0
  76. package/dist/{lib → core/capabilities}/creator.d.ts +1 -29
  77. package/dist/{lib → core/capabilities}/creator.js +14 -33
  78. package/dist/{lib → core/capabilities}/debug-report.d.ts +1 -1
  79. package/dist/{lib → core/capabilities}/debug-report.js +12 -31
  80. package/dist/{commands → core/capabilities}/doctor.d.ts +7 -2
  81. package/dist/{commands → core/capabilities}/doctor.js +47 -73
  82. package/dist/core/capabilities/engine-fallbacks.d.ts +26 -0
  83. package/dist/core/capabilities/engine-fallbacks.js +36 -0
  84. package/dist/core/capabilities/engine-ops.d.ts +33 -0
  85. package/dist/core/capabilities/engine-ops.js +145 -0
  86. package/dist/core/capabilities/engine-receipt.d.ts +53 -0
  87. package/dist/core/capabilities/engine-receipt.js +134 -0
  88. package/dist/core/capabilities/events.d.ts +200 -0
  89. package/dist/core/capabilities/events.js +383 -0
  90. package/dist/core/capabilities/fabricate-mesh.d.ts +111 -0
  91. package/dist/core/capabilities/fabricate-mesh.js +165 -0
  92. package/dist/core/capabilities/frame-quality.d.ts +71 -0
  93. package/dist/core/capabilities/frame-quality.js +449 -0
  94. package/dist/core/capabilities/game-task-plan.d.ts +66 -0
  95. package/dist/{lib → core/capabilities}/game-task-plan.js +59 -8
  96. package/dist/core/capabilities/hdri-import.d.ts +90 -0
  97. package/dist/core/capabilities/hdri-import.js +250 -0
  98. package/dist/core/capabilities/image-generation.d.ts +24 -0
  99. package/dist/core/capabilities/image-generation.js +22 -0
  100. package/dist/core/capabilities/navigation/open.d.ts +156 -0
  101. package/dist/core/capabilities/navigation/open.js +567 -0
  102. package/dist/core/capabilities/navigation/render-product-map.d.ts +1 -0
  103. package/dist/core/capabilities/navigation/render-product-map.js +84 -0
  104. package/dist/core/capabilities/navigation/targets.d.ts +87 -0
  105. package/dist/core/capabilities/navigation/targets.js +250 -0
  106. package/dist/core/capabilities/play-determinism.d.ts +35 -0
  107. package/dist/core/capabilities/play-determinism.js +86 -0
  108. package/dist/core/capabilities/project-context.d.ts +114 -0
  109. package/dist/core/capabilities/project-context.js +249 -0
  110. package/dist/core/capabilities/runtime-control.d.ts +540 -0
  111. package/dist/core/capabilities/runtime-control.js +1011 -0
  112. package/dist/core/capabilities/scene-kind.d.ts +19 -0
  113. package/dist/core/capabilities/scene-kind.js +137 -0
  114. package/dist/core/capabilities/scene-script.d.ts +38 -0
  115. package/dist/core/capabilities/scene-script.js +45 -0
  116. package/dist/core/capabilities/tool-dispatch.d.ts +42 -0
  117. package/dist/core/capabilities/tool-dispatch.js +1490 -0
  118. package/dist/core/capabilities/ui-control.d.ts +179 -0
  119. package/dist/core/capabilities/ui-control.js +423 -0
  120. package/dist/core/capabilities/variant-types.d.ts +22 -0
  121. package/dist/core/capabilities/variant-types.js +101 -0
  122. package/dist/core/capability-skew.d.ts +205 -0
  123. package/dist/core/capability-skew.js +386 -0
  124. package/dist/{lib → core}/config.d.ts +11 -1
  125. package/dist/{lib → core}/config.js +13 -2
  126. package/dist/core/embeddings.d.ts +78 -0
  127. package/dist/core/embeddings.js +166 -0
  128. package/dist/core/engine-install.d.ts +105 -0
  129. package/dist/core/engine-install.js +190 -0
  130. package/dist/core/engine.d.ts +94 -0
  131. package/dist/{lib → core}/engine.js +74 -28
  132. package/dist/core/feedback/client.d.ts +88 -0
  133. package/dist/core/feedback/client.js +182 -0
  134. package/dist/{lib → core}/format.d.ts +0 -1
  135. package/dist/{lib → core}/format.js +1 -1
  136. package/dist/core/headless/connection.d.ts +86 -0
  137. package/dist/core/headless/connection.js +97 -0
  138. package/dist/core/headless/editor-connection.d.ts +26 -0
  139. package/dist/core/headless/editor-connection.js +81 -0
  140. package/dist/core/headless/mcp-routing.d.ts +38 -0
  141. package/dist/core/headless/mcp-routing.js +83 -0
  142. package/dist/core/headless/registry.d.ts +91 -0
  143. package/dist/core/headless/registry.js +226 -0
  144. package/dist/core/headless/resolve.d.ts +46 -0
  145. package/dist/core/headless/resolve.js +75 -0
  146. package/dist/core/headless/spawn.d.ts +46 -0
  147. package/dist/core/headless/spawn.js +205 -0
  148. package/dist/core/headless/worker-connection.d.ts +96 -0
  149. package/dist/core/headless/worker-connection.js +353 -0
  150. package/dist/core/headless/worker-engine-client.d.ts +58 -0
  151. package/dist/core/headless/worker-engine-client.js +246 -0
  152. package/dist/core/launch-posture.d.ts +170 -0
  153. package/dist/core/launch-posture.js +317 -0
  154. package/dist/core/library-read.d.ts +73 -0
  155. package/dist/core/library-read.js +279 -0
  156. package/dist/core/library-search.d.ts +143 -0
  157. package/dist/core/library-search.js +301 -0
  158. package/dist/{lib → core}/log-filters.js +4 -2
  159. package/dist/{lib → core}/mcp-log.js +2 -17
  160. package/dist/core/package-root.d.ts +9 -0
  161. package/dist/core/package-root.js +11 -0
  162. package/dist/core/redact.d.ts +20 -0
  163. package/dist/core/redact.js +64 -0
  164. package/dist/core/registry-search.d.ts +167 -0
  165. package/dist/core/registry-search.js +358 -0
  166. package/dist/core/skills-registry.d.ts +47 -0
  167. package/dist/core/skills-registry.js +83 -0
  168. package/dist/{lib → core}/store.js +11 -7
  169. package/dist/{lib → core}/summer-compatibility.js +3 -3
  170. package/dist/{lib → core}/telemetry.js +5 -2
  171. package/dist/core/templates.d.ts +98 -0
  172. package/dist/core/templates.js +241 -0
  173. package/dist/core/tool-errors.d.ts +30 -0
  174. package/dist/core/tool-errors.js +40 -0
  175. package/dist/core/trajectory.d.ts +80 -0
  176. package/dist/core/trajectory.js +307 -0
  177. package/dist/core/util/http.d.ts +13 -0
  178. package/dist/core/util/http.js +28 -0
  179. package/dist/core/util/json.d.ts +12 -0
  180. package/dist/core/util/json.js +21 -0
  181. package/dist/core/util/process.d.ts +3 -0
  182. package/dist/core/util/process.js +13 -0
  183. package/dist/core/util/sleep.d.ts +1 -0
  184. package/dist/core/util/sleep.js +3 -0
  185. package/dist/core/version.d.ts +3 -0
  186. package/dist/core/version.js +5 -0
  187. package/dist/{lib → installer}/agent-config.d.ts +20 -1
  188. package/dist/{lib → installer}/agent-config.js +148 -23
  189. package/dist/installer/legacy-skills.d.ts +26 -0
  190. package/dist/installer/legacy-skills.js +53 -0
  191. package/dist/installer/setup.d.ts +76 -0
  192. package/dist/installer/setup.js +146 -0
  193. package/dist/installer/skill-locations.d.ts +45 -0
  194. package/dist/installer/skill-locations.js +170 -0
  195. package/dist/installer/version-check.d.ts +174 -0
  196. package/dist/{lib → installer}/version-check.js +173 -42
  197. package/dist/{lib/mcp-boot-notice.d.ts → mcp/boot-notice.d.ts} +1 -1
  198. package/dist/{commands/mcp.js → mcp/command.js} +18 -6
  199. package/dist/mcp/server.d.ts +23 -3
  200. package/dist/mcp/server.js +122 -28
  201. package/dist/mcp/tools/asset-tools.js +62 -142
  202. package/dist/mcp/tools/creator-tools.js +5 -23
  203. package/dist/mcp/tools/debug-tools.js +61 -18
  204. package/dist/mcp/tools/event-tools.d.ts +14 -0
  205. package/dist/mcp/tools/event-tools.js +41 -0
  206. package/dist/mcp/tools/fabricate-tools.d.ts +2 -0
  207. package/dist/mcp/tools/fabricate-tools.js +28 -0
  208. package/dist/mcp/tools/feedback-tools.d.ts +77 -0
  209. package/dist/mcp/tools/feedback-tools.js +88 -0
  210. package/dist/mcp/tools/file-tools.js +6 -53
  211. package/dist/mcp/tools/generate-tools.js +37 -63
  212. package/dist/mcp/tools/library-tools.d.ts +11 -0
  213. package/dist/mcp/tools/library-tools.js +42 -0
  214. package/dist/mcp/tools/navigation-tools.d.ts +7 -0
  215. package/dist/mcp/tools/navigation-tools.js +37 -0
  216. package/dist/mcp/tools/perception-tools.d.ts +20 -0
  217. package/dist/mcp/tools/perception-tools.js +146 -0
  218. package/dist/mcp/tools/project-tools.d.ts +14 -0
  219. package/dist/mcp/tools/project-tools.js +72 -281
  220. package/dist/mcp/tools/runtime-tools.d.ts +2 -0
  221. package/dist/mcp/tools/runtime-tools.js +92 -0
  222. package/dist/mcp/tools/scene-tools.d.ts +3 -0
  223. package/dist/mcp/tools/scene-tools.js +68 -119
  224. package/dist/mcp/tools/script-tools.d.ts +3 -0
  225. package/dist/mcp/tools/script-tools.js +118 -0
  226. package/dist/mcp/tools/spatial-tools.d.ts +2 -0
  227. package/dist/mcp/tools/spatial-tools.js +485 -0
  228. package/dist/mcp/tools/text-json.d.ts +8 -0
  229. package/dist/mcp/tools/text-json.js +12 -0
  230. package/dist/mcp/tools/{cloud-tools.d.ts → ui-tools.d.ts} +1 -1
  231. package/dist/mcp/tools/ui-tools.js +82 -0
  232. package/dist/mcp/tools/visual-tools.d.ts +2 -7
  233. package/dist/mcp/tools/visual-tools.js +383 -101
  234. package/dist/mcp/tools/with-engine.d.ts +9 -15
  235. package/dist/mcp/tools/with-engine.js +60 -96
  236. package/dist/project-memory/project-manifest.d.ts +36 -0
  237. package/dist/project-memory/project-manifest.js +50 -0
  238. package/dist/project-memory/project-memory.d.ts +57 -0
  239. package/dist/{lib → project-memory}/project-memory.js +46 -0
  240. package/gemini-extension.json +103 -2
  241. package/hooks/hooks-cursor.json +2 -2
  242. package/hooks/hooks.json +2 -1
  243. package/hooks/pre-commit-doctor.sh +45 -39
  244. package/hooks/run-hook.cmd +30 -23
  245. package/hooks/run-hook.sh +20 -0
  246. package/hooks/session-start.sh +18 -7
  247. package/integrations/README.md +70 -0
  248. package/integrations/claude/README.md +19 -0
  249. package/integrations/claude/manifest-target.json +16 -0
  250. package/integrations/cline/README.md +13 -0
  251. package/integrations/cline/manifest-target.json +3 -0
  252. package/integrations/codex/README.md +15 -0
  253. package/integrations/codex/manifest-target.json +5 -0
  254. package/integrations/cursor/README.md +16 -0
  255. package/integrations/cursor/manifest-target.json +5 -0
  256. package/integrations/factory/README.md +26 -0
  257. package/integrations/factory/manifest-target.json +5 -0
  258. package/integrations/gemini/README.md +26 -0
  259. package/integrations/gemini/manifest-target.json +5 -0
  260. package/integrations/github-copilot/README.md +12 -0
  261. package/integrations/github-copilot/manifest-target.json +3 -0
  262. package/integrations/kilo-code/README.md +16 -0
  263. package/integrations/kilo-code/manifest-target.json +3 -0
  264. package/integrations/lm-studio/README.md +12 -0
  265. package/integrations/lm-studio/manifest-target.json +3 -0
  266. package/integrations/opencode/README.md +15 -0
  267. package/integrations/opencode/manifest-target.json +3 -0
  268. package/integrations/roo-code/README.md +13 -0
  269. package/integrations/roo-code/manifest-target.json +3 -0
  270. package/integrations/vscode-copilot/README.md +12 -0
  271. package/integrations/vscode-copilot/manifest-target.json +3 -0
  272. package/integrations/windsurf/README.md +13 -0
  273. package/integrations/windsurf/manifest-target.json +3 -0
  274. package/library/references/collaborative-protocol/resource.yaml +24 -0
  275. package/library/references/gd-style/resource.yaml +24 -0
  276. package/{references → library/references/godot-version}/godot-version.md +6 -6
  277. package/library/references/godot-version/resource.yaml +22 -0
  278. package/library/references/headless-routing/headless-routing.md +46 -0
  279. package/library/references/headless-routing/resource.yaml +24 -0
  280. package/library/references/mcp-fresh-chat-playbook/mcp-fresh-chat-playbook.md +49 -0
  281. package/library/references/mcp-fresh-chat-playbook/resource.yaml +23 -0
  282. package/library/references/mcp-tools-reference/mcp-tools-reference.md +271 -0
  283. package/library/references/mcp-tools-reference/resource.yaml +17 -0
  284. package/library/references/product-map/product-map.md +103 -0
  285. package/library/references/product-map/resource.yaml +33 -0
  286. package/{references → library/references/public-surface-language}/public-surface-language.md +5 -7
  287. package/library/references/public-surface-language/resource.yaml +17 -0
  288. package/library/references/summer-folder/resource.yaml +20 -0
  289. package/{references → library/references/summer-folder}/summer-folder.md +22 -21
  290. package/{skills/rendering-and-lighting → library/skills}/3d-lighting/SKILL.md +15 -11
  291. package/library/skills/3d-lighting/resource.yaml +27 -0
  292. package/{skills/audio → library/skills}/adaptive-music/SKILL.md +1 -1
  293. package/library/skills/adaptive-music/resource.yaml +28 -0
  294. package/library/skills/agent-playtesting/SKILL.md +148 -0
  295. package/library/skills/agent-playtesting/resource.yaml +52 -0
  296. package/library/skills/ambient-bed/resource.yaml +24 -0
  297. package/{skills/video → library/skills}/animated-loop/SKILL.md +1 -1
  298. package/library/skills/animated-loop/resource.yaml +27 -0
  299. package/{skills/animation → library/skills}/animation-tree/SKILL.md +29 -14
  300. package/library/skills/animation-tree/resource.yaml +33 -0
  301. package/{skills/rendering-and-lighting → library/skills}/art-direction/SKILL.md +3 -3
  302. package/library/skills/art-direction/resource.yaml +29 -0
  303. package/{skills/asset-pipeline → library/skills}/asset-strategy/SKILL.md +44 -44
  304. package/library/skills/asset-strategy/resource.yaml +63 -0
  305. package/{skills/audio → library/skills}/audio-direction/SKILL.md +7 -7
  306. package/library/skills/audio-direction/resource.yaml +32 -0
  307. package/library/skills/auto-fire-targeting/resource.yaml +22 -0
  308. package/{skills/scene-and-project → library/skills}/brainstorm-game/SKILL.md +8 -8
  309. package/library/skills/brainstorm-game/resource.yaml +30 -0
  310. package/{skills/workflow → library/skills}/brainstorming/SKILL.md +2 -22
  311. package/library/skills/brainstorming/resource.yaml +23 -0
  312. package/{skills/workflow → library/skills}/brainstorming/spec-document-reviewer-prompt.md +1 -1
  313. package/{skills/scene-and-project → library/skills}/browse-templates/SKILL.md +18 -18
  314. package/library/skills/browse-templates/resource.yaml +23 -0
  315. package/library/skills/celeste-momentum-platforming/SKILL.md +366 -0
  316. package/library/skills/celeste-momentum-platforming/resource.yaml +33 -0
  317. package/library/skills/character-animation-wiring/SKILL.md +249 -0
  318. package/library/skills/character-animation-wiring/resource.yaml +39 -0
  319. package/{skills/3d-assets → library/skills}/character-model/SKILL.md +25 -25
  320. package/library/skills/character-model/resource.yaml +36 -0
  321. package/{skills/2d-assets → library/skills}/character-portrait/SKILL.md +14 -14
  322. package/library/skills/character-portrait/resource.yaml +30 -0
  323. package/{skills/video → library/skills}/cinematic-cutscene/SKILL.md +2 -2
  324. package/library/skills/cinematic-cutscene/resource.yaml +29 -0
  325. package/{skills/2d-assets → library/skills}/concept-art/SKILL.md +15 -15
  326. package/library/skills/concept-art/resource.yaml +34 -0
  327. package/{skills/2d-assets → library/skills}/create-asset-sheet/SKILL.md +8 -8
  328. package/library/skills/create-asset-sheet/resource.yaml +33 -0
  329. package/{skills/debugging → library/skills}/debug/SKILL.md +3 -3
  330. package/library/skills/debug/resource.yaml +31 -0
  331. package/{skills/workflow → library/skills}/debugging-game-feel/SKILL.md +11 -11
  332. package/library/skills/debugging-game-feel/resource.yaml +25 -0
  333. package/{skills/level-design → library/skills}/design-level/SKILL.md +6 -6
  334. package/library/skills/design-level/resource.yaml +31 -0
  335. package/{skills/gameplay-mechanics → library/skills}/design-mechanic/SKILL.md +3 -3
  336. package/library/skills/design-mechanic/resource.yaml +31 -0
  337. package/{skills/ai-and-npcs → library/skills}/design-npc/SKILL.md +7 -3
  338. package/library/skills/design-npc/resource.yaml +29 -0
  339. package/{skills/workflow → library/skills}/diagnosing-perf-regressions/SKILL.md +10 -10
  340. package/library/skills/diagnosing-perf-regressions/resource.yaml +25 -0
  341. package/{skills/workflow → library/skills}/dispatching-parallel-agents/SKILL.md +8 -8
  342. package/library/skills/dispatching-parallel-agents/resource.yaml +23 -0
  343. package/library/skills/driving-the-editor-ui/SKILL.md +85 -0
  344. package/library/skills/driving-the-editor-ui/resource.yaml +46 -0
  345. package/{skills/3d-assets → library/skills}/environment-kit/SKILL.md +11 -11
  346. package/library/skills/environment-kit/resource.yaml +29 -0
  347. package/{skills/deployment → library/skills}/export-and-ship/SKILL.md +5 -5
  348. package/library/skills/export-and-ship/resource.yaml +32 -0
  349. package/library/skills/fabricating-assets/SKILL.md +195 -0
  350. package/library/skills/fabricating-assets/resource.yaml +52 -0
  351. package/{skills/animation → library/skills}/facial-and-lipsync/SKILL.md +23 -11
  352. package/library/skills/facial-and-lipsync/resource.yaml +36 -0
  353. package/{skills/character-controllers → library/skills}/fps-controller/SKILL.md +8 -4
  354. package/library/skills/fps-controller/resource.yaml +29 -0
  355. package/{skills/visual-effects → library/skills}/game-feel/SKILL.md +7 -7
  356. package/library/skills/game-feel/resource.yaml +27 -0
  357. package/library/skills/gameskill/SKILL.md +64 -0
  358. package/library/skills/gameskill/resource.yaml +22 -0
  359. package/library/skills/gdscript-patterns/resource.yaml +23 -0
  360. package/{skills/animation → library/skills}/generate-motion/SKILL.md +16 -16
  361. package/library/skills/generate-motion/resource.yaml +34 -0
  362. package/library/skills/godogen-visual-proof-game-generation/SKILL.md +223 -0
  363. package/library/skills/godogen-visual-proof-game-generation/resource.yaml +33 -0
  364. package/{skills/workflow → library/skills}/headless-scripting/SKILL.md +14 -7
  365. package/library/skills/headless-scripting/resource.yaml +26 -0
  366. package/{skills/multiplayer-and-networking → library/skills}/host-authoritative-state/SKILL.md +1 -1
  367. package/library/skills/host-authoritative-state/resource.yaml +28 -0
  368. package/{skills/2d-assets → library/skills}/instantiate-asset-pack/SKILL.md +10 -12
  369. package/library/skills/instantiate-asset-pack/resource.yaml +29 -0
  370. package/{skills/workflow → library/skills}/investigating-bugs/SKILL.md +4 -4
  371. package/{skills/workflow → library/skills}/investigating-bugs/condition-based-waiting.md +8 -8
  372. package/library/skills/investigating-bugs/resource.yaml +24 -0
  373. package/{skills/workflow → library/skills}/investigating-bugs/root-cause-tracing.md +1 -7
  374. package/library/skills/lumera-single-image-scene-reconstruction/SKILL.md +164 -0
  375. package/library/skills/lumera-single-image-scene-reconstruction/resource.yaml +35 -0
  376. package/{skills/scene-and-project → library/skills}/make-game/SKILL.md +23 -23
  377. package/library/skills/make-game/resource.yaml +35 -0
  378. package/library/skills/music-track/resource.yaml +28 -0
  379. package/library/skills/navigate-summer/SKILL.md +61 -0
  380. package/library/skills/navigate-summer/resource.yaml +35 -0
  381. package/{skills/scene-and-project → library/skills}/new-project/SKILL.md +10 -10
  382. package/library/skills/new-project/resource.yaml +28 -0
  383. package/{skills/3d-assets → library/skills}/organic-model/SKILL.md +16 -16
  384. package/library/skills/organic-model/resource.yaml +32 -0
  385. package/{skills/multiplayer-and-networking → library/skills}/peer-to-peer-multiplayer/SKILL.md +2 -2
  386. package/library/skills/peer-to-peer-multiplayer/resource.yaml +28 -0
  387. package/{skills/2d-assets → library/skills}/pixel-art/SKILL.md +13 -13
  388. package/library/skills/pixel-art/resource.yaml +31 -0
  389. package/library/skills/play/resource.yaml +26 -0
  390. package/{skills/workflow → library/skills}/playtesting-a-feature/SKILL.md +41 -22
  391. package/library/skills/playtesting-a-feature/resource.yaml +31 -0
  392. package/{skills/animation → library/skills}/procedural-animation/SKILL.md +25 -10
  393. package/library/skills/procedural-animation/resource.yaml +33 -0
  394. package/{skills/3d-assets → library/skills}/prop-model/SKILL.md +13 -13
  395. package/library/skills/prop-model/resource.yaml +33 -0
  396. package/library/skills/psx-retro-rendering/SKILL.md +416 -0
  397. package/library/skills/psx-retro-rendering/resource.yaml +36 -0
  398. package/library/skills/realtime-wet-surfaces/SKILL.md +189 -0
  399. package/library/skills/realtime-wet-surfaces/resource.yaml +31 -0
  400. package/{skills/deployment → library/skills}/remote-deploy/SKILL.md +3 -3
  401. package/library/skills/remote-deploy/resource.yaml +23 -0
  402. package/{skills/animation → library/skills}/retarget/SKILL.md +15 -14
  403. package/library/skills/retarget/resource.yaml +33 -0
  404. package/library/skills/running-in-the-cloud/SKILL.md +103 -0
  405. package/library/skills/running-in-the-cloud/resource.yaml +33 -0
  406. package/{skills/scene-and-project → library/skills}/scene-composition/SKILL.md +9 -1
  407. package/library/skills/scene-composition/resource.yaml +27 -0
  408. package/library/skills/scene-hierarchy-design/SKILL.md +102 -0
  409. package/library/skills/scene-hierarchy-design/resource.yaml +31 -0
  410. package/library/skills/scene-scripting/SKILL.md +764 -0
  411. package/library/skills/scene-scripting/resource.yaml +58 -0
  412. package/{skills/level-design → library/skills}/scene-to-level/SKILL.md +16 -17
  413. package/library/skills/scene-to-level/resource.yaml +33 -0
  414. package/{skills/multiplayer-and-networking → library/skills}/setup-multiplayer/SKILL.md +1 -1
  415. package/library/skills/setup-multiplayer/resource.yaml +28 -0
  416. package/library/skills/skill-create/SKILL.md +138 -0
  417. package/library/skills/skill-create/resource.yaml +25 -0
  418. package/{skills/workflow → library/skills}/skill-improve/SKILL.md +2 -2
  419. package/library/skills/skill-improve/resource.yaml +25 -0
  420. package/{skills/workflow → library/skills}/skill-test/SKILL.md +4 -4
  421. package/library/skills/skill-test/resource.yaml +26 -0
  422. package/library/skills/skintokens-auto-rigging/SKILL.md +200 -0
  423. package/library/skills/skintokens-auto-rigging/resource.yaml +38 -0
  424. package/{skills/2d-assets → library/skills}/skybox-panorama/SKILL.md +8 -8
  425. package/library/skills/skybox-panorama/resource.yaml +28 -0
  426. package/{skills/audio → library/skills}/sound-effect/SKILL.md +2 -2
  427. package/library/skills/sound-effect/resource.yaml +27 -0
  428. package/library/skills/spatial-placement/SKILL.md +74 -0
  429. package/library/skills/spatial-placement/resource.yaml +42 -0
  430. package/library/skills/spatial-placement/tests/spec.md +65 -0
  431. package/{skills/2d-assets → library/skills}/sprite-sheet/SKILL.md +12 -12
  432. package/library/skills/sprite-sheet/resource.yaml +32 -0
  433. package/{skills/2d-assets → library/skills}/tileable-texture/SKILL.md +9 -9
  434. package/library/skills/tileable-texture/resource.yaml +31 -0
  435. package/{skills/video → library/skills}/trailer-shot/SKILL.md +1 -1
  436. package/library/skills/trailer-shot/resource.yaml +27 -0
  437. package/{skills/performance → library/skills}/tune-performance/SKILL.md +6 -6
  438. package/library/skills/tune-performance/resource.yaml +31 -0
  439. package/{skills/ui-and-ux → library/skills}/ui-basics/SKILL.md +1 -1
  440. package/library/skills/ui-basics/resource.yaml +25 -0
  441. package/{skills/2d-assets → library/skills}/ui-graphics/SKILL.md +11 -11
  442. package/library/skills/ui-graphics/resource.yaml +29 -0
  443. package/{skills/2d-assets → library/skills}/use-widget-asset/SKILL.md +4 -4
  444. package/library/skills/use-widget-asset/resource.yaml +29 -0
  445. package/{skills/workflow → library/skills}/using-summer/SKILL.md +12 -9
  446. package/library/skills/using-summer/resource.yaml +41 -0
  447. package/{skills/3d-assets → library/skills}/vehicle-model/SKILL.md +18 -18
  448. package/library/skills/vehicle-model/resource.yaml +34 -0
  449. package/{skills/workflow → library/skills}/verification-before-completion/SKILL.md +10 -10
  450. package/library/skills/verification-before-completion/resource.yaml +23 -0
  451. package/library/skills/verifying-scenes/SKILL.md +98 -0
  452. package/library/skills/verifying-scenes/resource.yaml +42 -0
  453. package/{skills/visual-effects/recipes/dissolve → library/skills/vfx-dissolve}/SKILL.md +31 -11
  454. package/library/skills/vfx-dissolve/resource.yaml +33 -0
  455. package/{skills/visual-effects/recipes/fire → library/skills/vfx-fire}/SKILL.md +43 -12
  456. package/library/skills/vfx-fire/_building-blocks/noise-3d-fbm.gdshaderinc +45 -0
  457. package/library/skills/vfx-fire/resource.yaml +35 -0
  458. package/{skills/visual-effects/recipes/hit-spark → library/skills/vfx-hit-spark}/SKILL.md +16 -10
  459. package/library/skills/vfx-hit-spark/_building-blocks/additive-billboard-particles.md +37 -0
  460. package/library/skills/vfx-hit-spark/resource.yaml +34 -0
  461. package/{skills/visual-effects/recipes/lightning → library/skills/vfx-lightning}/SKILL.md +24 -11
  462. package/library/skills/vfx-lightning/_building-blocks/additive-billboard-particles.md +37 -0
  463. package/library/skills/vfx-lightning/resource.yaml +33 -0
  464. package/{skills/visual-effects/recipes/magic-glow → library/skills/vfx-magic-glow}/SKILL.md +31 -11
  465. package/library/skills/vfx-magic-glow/_building-blocks/additive-billboard-particles.md +37 -0
  466. package/library/skills/vfx-magic-glow/resource.yaml +34 -0
  467. package/{skills/visual-effects/recipes/muzzle-flash → library/skills/vfx-muzzle-flash}/SKILL.md +29 -9
  468. package/library/skills/vfx-muzzle-flash/_building-blocks/additive-billboard-particles.md +37 -0
  469. package/library/skills/vfx-muzzle-flash/_building-blocks/trauma-shake-snippet.md +53 -0
  470. package/library/skills/vfx-muzzle-flash/resource.yaml +35 -0
  471. package/{skills/visual-effects/recipes/smoke → library/skills/vfx-smoke}/SKILL.md +35 -9
  472. package/library/skills/vfx-smoke/_building-blocks/noise-3d-fbm.gdshaderinc +45 -0
  473. package/library/skills/vfx-smoke/resource.yaml +32 -0
  474. package/{skills/visual-effects/recipes/water-ripple → library/skills/vfx-water-ripple}/SKILL.md +31 -9
  475. package/library/skills/vfx-water-ripple/_building-blocks/additive-billboard-particles.md +37 -0
  476. package/library/skills/vfx-water-ripple/resource.yaml +31 -0
  477. package/library/skills/voice-line/resource.yaml +27 -0
  478. package/library/skills/world-building-3d/SKILL.md +105 -0
  479. package/library/skills/world-building-3d/references/spatial-tools.md +50 -0
  480. package/library/skills/world-building-3d/resource.yaml +44 -0
  481. package/library/skills/world-building-3d/tests/spec.md +48 -0
  482. package/{skills/workflow → library/skills}/writing-plans/SKILL.md +19 -14
  483. package/library/skills/writing-plans/resource.yaml +23 -0
  484. package/{skills/workflow → library/skills}/writing-skills/SKILL.md +38 -44
  485. package/library/skills/writing-skills/resource.yaml +29 -0
  486. package/{skills/workflow → library/skills}/writing-skills/testing-skills-with-subagents.md +13 -14
  487. package/library/templates/2d-brario-platformer/resource.yaml +21 -0
  488. package/library/templates/2d-dungeon-roguelike/resource.yaml +23 -0
  489. package/library/templates/2d-grid-puzzle/resource.yaml +21 -0
  490. package/library/templates/2d-plants-and-zombies-tower-defense/resource.yaml +21 -0
  491. package/library/templates/2d-platformer/resource.yaml +24 -0
  492. package/library/templates/2d-rpg/resource.yaml +21 -0
  493. package/library/templates/2d-vampire-survivor-roguelike/resource.yaml +21 -0
  494. package/library/templates/3d-basic/resource.yaml +16 -0
  495. package/library/templates/3d-city-kit/resource.yaml +24 -0
  496. package/library/templates/3d-fps-old-school/resource.yaml +21 -0
  497. package/library/templates/3d-fps-simple-animated-npc/resource.yaml +21 -0
  498. package/library/templates/3d-lan-multiplayer-starter/resource.yaml +22 -0
  499. package/library/templates/3d-open-world-explore-tps/resource.yaml +21 -0
  500. package/library/templates/3d-procedural-road-world/resource.yaml +21 -0
  501. package/library/templates/3d-racing-game/resource.yaml +21 -0
  502. package/library/templates/3d-royale-clash-type/resource.yaml +21 -0
  503. package/library/templates/3d-third-person-controller/resource.yaml +21 -0
  504. package/library/templates/3d-voxel-sandbox/resource.yaml +24 -0
  505. package/library/templates/README.md +94 -0
  506. package/library/templates/empty/resource.yaml +16 -0
  507. package/library/tools/add-node/resource.yaml +60 -0
  508. package/library/tools/align-distribute-3d/resource.yaml +87 -0
  509. package/library/tools/api-docs/resource.yaml +57 -0
  510. package/library/tools/batch/resource.yaml +52 -0
  511. package/library/tools/camera-bookmark/resource.yaml +73 -0
  512. package/library/tools/check-job/resource.yaml +45 -0
  513. package/library/tools/clear-console/resource.yaml +40 -0
  514. package/library/tools/connect-signal/resource.yaml +63 -0
  515. package/library/tools/create-debug-report/resource.yaml +67 -0
  516. package/library/tools/create-scene/resource.yaml +59 -0
  517. package/library/tools/creator-config/resource.yaml +63 -0
  518. package/library/tools/creator-publish/resource.yaml +73 -0
  519. package/library/tools/creator-releases/resource.yaml +53 -0
  520. package/library/tools/fabricate-3d/resource.yaml +108 -0
  521. package/library/tools/game-control/resource.yaml +84 -0
  522. package/library/tools/game-input/resource.yaml +159 -0
  523. package/library/tools/game-probe/resource.yaml +90 -0
  524. package/library/tools/generate-3d/resource.yaml +112 -0
  525. package/library/tools/generate-audio/resource.yaml +80 -0
  526. package/library/tools/generate-image/resource.yaml +62 -0
  527. package/library/tools/generate-motion/resource.yaml +66 -0
  528. package/library/tools/generate-video/resource.yaml +66 -0
  529. package/library/tools/get-agent-playbook/resource.yaml +40 -0
  530. package/library/tools/get-asset/resource.yaml +42 -0
  531. package/library/tools/get-asset-download-url/resource.yaml +52 -0
  532. package/library/tools/get-console/resource.yaml +69 -0
  533. package/library/tools/get-debugger-errors/resource.yaml +56 -0
  534. package/library/tools/get-debugger-warnings/resource.yaml +52 -0
  535. package/library/tools/get-diagnostics/resource.yaml +42 -0
  536. package/library/tools/get-project-context/resource.yaml +45 -0
  537. package/library/tools/get-runtime-tree/resource.yaml +62 -0
  538. package/library/tools/get-scene-tree/resource.yaml +52 -0
  539. package/library/tools/get-script-errors/resource.yaml +45 -0
  540. package/library/tools/get-studio-workflow/resource.yaml +43 -0
  541. package/library/tools/import-asset/resource.yaml +73 -0
  542. package/library/tools/import-asset-by-id/resource.yaml +56 -0
  543. package/library/tools/import-from-url/resource.yaml +51 -0
  544. package/library/tools/import-from-url-batch/resource.yaml +60 -0
  545. package/library/tools/import-hdri/resource.yaml +69 -0
  546. package/library/tools/input-map-bind/resource.yaml +52 -0
  547. package/library/tools/inspect-node/resource.yaml +46 -0
  548. package/library/tools/inspect-resource/resource.yaml +45 -0
  549. package/library/tools/inspect-runtime-node/resource.yaml +54 -0
  550. package/library/tools/instantiate-scene/resource.yaml +62 -0
  551. package/library/tools/is-running/resource.yaml +40 -0
  552. package/library/tools/library-feedback/resource.yaml +89 -0
  553. package/library/tools/list-my-assets/resource.yaml +56 -0
  554. package/library/tools/navigation-probe/resource.yaml +85 -0
  555. package/library/tools/open/resource.yaml +80 -0
  556. package/library/tools/open-main-scene/resource.yaml +40 -0
  557. package/library/tools/open-scene/resource.yaml +46 -0
  558. package/library/tools/play/resource.yaml +91 -0
  559. package/library/tools/project-setting/resource.yaml +53 -0
  560. package/library/tools/read-file/resource.yaml +47 -0
  561. package/library/tools/read-library/resource.yaml +67 -0
  562. package/library/tools/recent-events/resource.yaml +71 -0
  563. package/library/tools/remove-node/resource.yaml +51 -0
  564. package/library/tools/replace-node/resource.yaml +57 -0
  565. package/library/tools/replace-text/resource.yaml +61 -0
  566. package/library/tools/run-editor-script/resource.yaml +61 -0
  567. package/library/tools/run-script/resource.yaml +73 -0
  568. package/library/tools/runtime-animate/resource.yaml +140 -0
  569. package/library/tools/runtime-call/resource.yaml +74 -0
  570. package/library/tools/runtime-set/resource.yaml +80 -0
  571. package/library/tools/runtime-spawn/resource.yaml +95 -0
  572. package/library/tools/save-scene/resource.yaml +50 -0
  573. package/library/tools/screenshot/resource.yaml +112 -0
  574. package/library/tools/search-assets/resource.yaml +67 -0
  575. package/library/tools/search-library/resource.yaml +81 -0
  576. package/library/tools/select-node/resource.yaml +48 -0
  577. package/library/tools/set-prop/resource.yaml +64 -0
  578. package/library/tools/set-resource-property/resource.yaml +66 -0
  579. package/library/tools/slice-asset-sheet/resource.yaml +47 -0
  580. package/library/tools/snap-to-surface/resource.yaml +90 -0
  581. package/library/tools/snapshot-diff/resource.yaml +58 -0
  582. package/library/tools/starcast/resource.yaml +120 -0
  583. package/library/tools/start-game-task/resource.yaml +91 -0
  584. package/library/tools/stop/resource.yaml +51 -0
  585. package/library/tools/test-placement/resource.yaml +109 -0
  586. package/library/tools/ui-actions/resource.yaml +77 -0
  587. package/library/tools/ui-activate/resource.yaml +88 -0
  588. package/library/tools/ui-screenshot/resource.yaml +63 -0
  589. package/library/tools/ui-tree/resource.yaml +69 -0
  590. package/library/tools/wait-for-event/resource.yaml +84 -0
  591. package/library/tools/world-snapshot/resource.yaml +60 -0
  592. package/library/tools/write-file/resource.yaml +54 -0
  593. package/package.json +22 -16
  594. package/registry/generated/aliases.json +207 -0
  595. package/registry/generated/counts.json +12 -0
  596. package/registry/generated/gemini-extension.json +122 -0
  597. package/registry/generated/index.json +7709 -0
  598. package/registry/generated/marketplace.claude.json +44 -0
  599. package/registry/generated/mcp.json +13 -0
  600. package/registry/generated/plugin.claude.json +135 -0
  601. package/registry/generated/plugin.codex.json +144 -0
  602. package/registry/generated/plugin.cursor.json +134 -0
  603. package/registry/generated/plugin.factory.json +117 -0
  604. package/registry/generated/skills-registry.json +851 -0
  605. package/registry/generated/templates-registry.json +455 -0
  606. package/registry/schemas/allowed-hosts.json +19 -0
  607. package/registry/schemas/collection.schema.json +68 -0
  608. package/registry/schemas/domains.json +96 -0
  609. package/registry/schemas/example.schema.json +11 -0
  610. package/registry/schemas/reference.schema.json +10 -0
  611. package/registry/schemas/resource.schema.json +154 -0
  612. package/registry/schemas/skill.schema.json +14 -0
  613. package/registry/schemas/template.schema.json +46 -0
  614. package/registry/schemas/tool.schema.json +61 -0
  615. package/_persona/summer/SKILL.md +0 -113
  616. package/dist/bin/postinstall.d.ts +0 -2
  617. package/dist/bin/postinstall.js +0 -3
  618. package/dist/commands/cloud.d.ts +0 -2
  619. package/dist/commands/cloud.js +0 -80
  620. package/dist/commands/create.d.ts +0 -3
  621. package/dist/commands/create.js +0 -171
  622. package/dist/commands/install.d.ts +0 -19
  623. package/dist/commands/install.js +0 -194
  624. package/dist/commands/list.js +0 -67
  625. package/dist/commands/logout.js +0 -13
  626. package/dist/commands/logs.d.ts +0 -2
  627. package/dist/commands/logs.js +0 -19
  628. package/dist/commands/open.d.ts +0 -2
  629. package/dist/commands/open.js +0 -32
  630. package/dist/commands/orchestrator.d.ts +0 -8
  631. package/dist/commands/orchestrator.js +0 -143
  632. package/dist/commands/run.d.ts +0 -2
  633. package/dist/commands/run.js +0 -167
  634. package/dist/commands/status.js +0 -46
  635. package/dist/lib/banner.d.ts +0 -4
  636. package/dist/lib/banner.js +0 -122
  637. package/dist/lib/cloud/api.d.ts +0 -79
  638. package/dist/lib/cloud/api.js +0 -107
  639. package/dist/lib/cloud/apply.d.ts +0 -32
  640. package/dist/lib/cloud/apply.js +0 -294
  641. package/dist/lib/cloud/checkpoint.d.ts +0 -26
  642. package/dist/lib/cloud/checkpoint.js +0 -142
  643. package/dist/lib/cloud/conflicts.d.ts +0 -55
  644. package/dist/lib/cloud/conflicts.js +0 -131
  645. package/dist/lib/cloud/containment.d.ts +0 -8
  646. package/dist/lib/cloud/containment.js +0 -52
  647. package/dist/lib/cloud/diff.d.ts +0 -39
  648. package/dist/lib/cloud/diff.js +0 -138
  649. package/dist/lib/cloud/engine-bridge.d.ts +0 -34
  650. package/dist/lib/cloud/engine-bridge.js +0 -139
  651. package/dist/lib/cloud/hash-cache.d.ts +0 -23
  652. package/dist/lib/cloud/hash-cache.js +0 -44
  653. package/dist/lib/cloud/hash.d.ts +0 -10
  654. package/dist/lib/cloud/hash.js +0 -111
  655. package/dist/lib/cloud/http.d.ts +0 -17
  656. package/dist/lib/cloud/http.js +0 -47
  657. package/dist/lib/cloud/lock-path.d.ts +0 -1
  658. package/dist/lib/cloud/lock-path.js +0 -5
  659. package/dist/lib/cloud/lock.d.ts +0 -14
  660. package/dist/lib/cloud/lock.js +0 -143
  661. package/dist/lib/cloud/manifest.d.ts +0 -6
  662. package/dist/lib/cloud/manifest.js +0 -41
  663. package/dist/lib/cloud/paths.d.ts +0 -20
  664. package/dist/lib/cloud/paths.js +0 -90
  665. package/dist/lib/cloud/project-godot-merge.d.ts +0 -32
  666. package/dist/lib/cloud/project-godot-merge.js +0 -185
  667. package/dist/lib/cloud/rules.d.ts +0 -39
  668. package/dist/lib/cloud/rules.js +0 -159
  669. package/dist/lib/cloud/sync.d.ts +0 -21
  670. package/dist/lib/cloud/sync.js +0 -518
  671. package/dist/lib/cloud/transfer.d.ts +0 -23
  672. package/dist/lib/cloud/transfer.js +0 -184
  673. package/dist/lib/cloud/types.d.ts +0 -62
  674. package/dist/lib/cloud/types.js +0 -1
  675. package/dist/lib/cloud/validate-path.d.ts +0 -23
  676. package/dist/lib/cloud/validate-path.js +0 -103
  677. package/dist/lib/engine.d.ts +0 -51
  678. package/dist/lib/game-task-plan.d.ts +0 -42
  679. package/dist/lib/project-memory.d.ts +0 -33
  680. package/dist/lib/public-surface-paths.d.ts +0 -13
  681. package/dist/lib/public-surface-paths.js +0 -42
  682. package/dist/lib/remote-templates.d.ts +0 -25
  683. package/dist/lib/remote-templates.js +0 -86
  684. package/dist/lib/skills-registry.d.ts +0 -572
  685. package/dist/lib/skills-registry.js +0 -1061
  686. package/dist/lib/version-check.d.ts +0 -106
  687. package/dist/mcp/tools/cloud-tools.js +0 -42
  688. package/references/mcp-tools-reference.md +0 -199
  689. package/references/template-registry.md +0 -73
  690. package/skills/README.md +0 -103
  691. package/skills/scene-and-project/summer-cloud/SKILL.md +0 -92
  692. package/skills/workflow/brainstorming/scripts/frame-template.html +0 -214
  693. package/skills/workflow/brainstorming/scripts/helper.js +0 -88
  694. package/skills/workflow/brainstorming/scripts/server.cjs +0 -354
  695. package/skills/workflow/brainstorming/scripts/start-server.sh +0 -148
  696. package/skills/workflow/brainstorming/scripts/stop-server.sh +0 -56
  697. package/skills/workflow/brainstorming/visual-companion.md +0 -287
  698. package/skills/workflow/gameskill/SKILL.md +0 -120
  699. package/skills/workflow/investigating-bugs/CREATION-LOG.md +0 -119
  700. package/skills/workflow/investigating-bugs/condition-based-waiting-example.ts +0 -158
  701. package/skills/workflow/investigating-bugs/find-polluter.sh +0 -63
  702. package/skills/workflow/investigating-bugs/test-academic.md +0 -14
  703. package/skills/workflow/investigating-bugs/test-pressure-1.md +0 -58
  704. package/skills/workflow/investigating-bugs/test-pressure-2.md +0 -68
  705. package/skills/workflow/investigating-bugs/test-pressure-3.md +0 -69
  706. package/skills/workflow/mcpupdate/SKILL.md +0 -134
  707. package/skills/workflow/skill-create/SKILL.md +0 -153
  708. package/skills/workflow/writing-skills/anthropic-best-practices.md +0 -1150
  709. package/skills/workflow/writing-skills/examples/CLAUDE_MD_TESTING.md +0 -189
  710. package/skills/workflow/writing-skills/graphviz-conventions.dot +0 -172
  711. package/skills/workflow/writing-skills/persuasion-principles.md +0 -187
  712. package/skills/workflow/writing-skills/render-graphs.js +0 -168
  713. /package/dist/{commands → cli/commands}/config.d.ts +0 -0
  714. /package/dist/{commands → cli/commands}/debug.d.ts +0 -0
  715. /package/dist/{commands → cli/commands}/list.d.ts +0 -0
  716. /package/dist/{commands → cli/commands}/login.d.ts +0 -0
  717. /package/dist/{commands → cli/commands}/plan.d.ts +0 -0
  718. /package/dist/{commands → cli/commands}/publish.d.ts +0 -0
  719. /package/dist/{commands → cli/commands}/releases.d.ts +0 -0
  720. /package/dist/{commands → cli/commands}/setup.d.ts +0 -0
  721. /package/dist/{commands → cli/commands}/skills.d.ts +0 -0
  722. /package/dist/{lib → core}/log-filters.d.ts +0 -0
  723. /package/dist/{lib → core}/mcp-log.d.ts +0 -0
  724. /package/dist/{lib → core}/store.d.ts +0 -0
  725. /package/dist/{lib → core}/summer-compatibility.d.ts +0 -0
  726. /package/dist/{lib → core}/telemetry.d.ts +0 -0
  727. /package/dist/{lib/mcp-boot-notice.js → mcp/boot-notice.js} +0 -0
  728. /package/dist/{commands/mcp.d.ts → mcp/command.d.ts} +0 -0
  729. /package/{references → library/references/collaborative-protocol}/collaborative-protocol.md +0 -0
  730. /package/{references → library/references/gd-style}/gd-style.md +0 -0
  731. /package/{skills/audio → library/skills}/ambient-bed/SKILL.md +0 -0
  732. /package/{skills/gameplay-mechanics → library/skills}/auto-fire-targeting/SKILL.md +0 -0
  733. /package/{skills/scripting-patterns → library/skills}/gdscript-patterns/SKILL.md +0 -0
  734. /package/{skills/scripting-patterns → library/skills}/gdscript-patterns/reference.md +0 -0
  735. /package/{skills/workflow → library/skills}/investigating-bugs/defense-in-depth.md +0 -0
  736. /package/{skills/audio → library/skills}/music-track/SKILL.md +0 -0
  737. /package/{skills/scene-and-project → library/skills}/play/SKILL.md +0 -0
  738. /package/{skills/visual-effects → library/skills/vfx-dissolve}/_building-blocks/noise-3d-fbm.gdshaderinc +0 -0
  739. /package/{skills/visual-effects → library/skills/vfx-fire}/_building-blocks/additive-billboard-particles.md +0 -0
  740. /package/{skills/visual-effects → library/skills/vfx-lightning}/_building-blocks/trauma-shake-snippet.md +0 -0
  741. /package/{skills/audio → library/skills}/voice-line/SKILL.md +0 -0
  742. /package/{skills/workflow → library/skills}/writing-plans/plan-document-reviewer-prompt.md +0 -0
@@ -0,0 +1,23 @@
1
+ id: skill/brainstorming
2
+ kind: skill
3
+ version: 1.0.3
4
+ summary: "Explore user intent, requirements, and design before implementation — must run before any creative work: features, components, mechanics, behavior."
5
+ use_when:
6
+ - starting creative work — designing a game, picking a mechanic, building features or components, modifying behavior
7
+ - a request is ambiguous about goals or constraints and work would otherwise start on guesses
8
+ facets:
9
+ lifecycle:
10
+ - build
11
+ domains:
12
+ - agent-workflow
13
+ - game-design
14
+ modalities:
15
+ - docs
16
+ compatibility:
17
+ engine: ">=4.6"
18
+ source: official
19
+ license: MIT
20
+ status: stable
21
+ recommended: true
22
+ aliases:
23
+ - skills/workflow/brainstorming
@@ -4,7 +4,7 @@ Use this template when dispatching a spec document reviewer subagent.
4
4
 
5
5
  **Purpose:** Verify the spec is complete, consistent, and ready for implementation planning.
6
6
 
7
- **Dispatch after:** Spec document is written to docs/superpowers/specs/
7
+ **Dispatch after:** Spec document is written to `.summer/specs/` in the game project
8
8
 
9
9
  ```
10
10
  Task tool (general-purpose):
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: browse-templates
3
- description: Use when the user wants to see available Summer Engine project templates, start from an existing template, or asks "what templates exist?" — fetches the live list from github.com/SummerEngine, presents the choices, and creates a project from the chosen template via `summer create <slug> <project-name>`. Trigger on "templates", "starter", "boilerplate", "from a template", "what's available", "show me templates", "third-person", "platformer", "multiplayer starter".
3
+ description: Use when the user wants to see available Summer Engine project templates, start from an existing template, or asks "what templates exist?" — lists the pinned template registry via `summer list templates`, presents the choices, and creates a project from the chosen template via `summer create <slug> <project-name>`. Trigger on "templates", "starter", "boilerplate", "from a template", "what's available", "show me templates", "third-person", "platformer", "multiplayer starter".
4
4
  license: MIT
5
5
  compatibility: [Cursor, Claude Code, Codex, Windsurf, Gemini, OpenCode]
6
6
  category: scene-and-project
@@ -9,9 +9,9 @@ allowed-tools: Bash Read summer_get_project_context
9
9
  paths: ["**/project.godot"]
10
10
  ---
11
11
 
12
- # /browse-templates — Pick a community template and clone it
12
+ # /browse-templates — Pick a registry template and create a project from it
13
13
 
14
- Summer's community templates live in [github.com/SummerEngine](https://github.com/orgs/SummerEngine/repositories) under `template-*` repos: `template-3d-third-person-controller`, `template-3d-lan-multiplayer-starter`, `template-2d-platformer`, and so on. They're working starter projects — open in Summer Engine and play immediately.
14
+ Summer's templates are the pin manifests in `library/templates/<slug>/resource.yaml`, compiled into `registry/generated/templates-registry.json`: `3d-third-person-controller`, `3d-lan-multiplayer-starter`, `2d-platformer`, and so on. Each pinned template names a repo, an exact commit, and a tree digest; the two built-ins (`empty`, `3d-basic`) are generated locally. They're working starter projects — open in Summer Engine and play immediately.
15
15
 
16
16
  ## When to use this skill
17
17
 
@@ -22,7 +22,7 @@ Summer's community templates live in [github.com/SummerEngine](https://github.co
22
22
 
23
23
  ## When NOT to use this skill
24
24
 
25
- - User says "blank project" / "empty project" / "from scratch" → use `summer:new-project`.
25
+ - User says "blank project" / "empty project" / "from scratch" → use `new-project`.
26
26
  - User wants to *make* a new template (contribute one) → that's not this skill; point them at the README's contributing section.
27
27
 
28
28
  ## Steps
@@ -33,15 +33,15 @@ Summer's community templates live in [github.com/SummerEngine](https://github.co
33
33
  summer list templates
34
34
  ```
35
35
 
36
- That hits the GitHub org API and prints both built-in templates (offline-friendly) and community templates with descriptions. **Always run this first — never recommend a template from memory.** The list evolves; what you remember may be stale, archived, or renamed.
36
+ That prints the template registry — built-ins and pinned templates with status, systems, and preview notes. It reads the registry only; it does not query GitHub. **Always run this first — never recommend a template from memory.** The list evolves; what you remember may be stale, retired, or renamed.
37
37
 
38
- If the command errors out (rate-limit, offline), tell the user and offer the built-ins (`empty`, `3d-basic`) plus the canonical URL: [github.com/SummerEngine](https://github.com/orgs/SummerEngine/repositories).
38
+ If the command errors out, tell the user and offer the built-ins (`empty`, `3d-basic`), which need no network.
39
39
 
40
40
  ### 2. Help the user pick
41
41
 
42
42
  If the user has a specific game shape in mind, narrow before showing all options:
43
43
 
44
- > "Looking for a third-person 3D template — `3d-third-person-controller` looks right. Want me to clone it as `my-game`?"
44
+ > "Looking for a third-person 3D template — `3d-third-person-controller` looks right. Want me to create it as `my-game`?"
45
45
 
46
46
  If they're undecided, show 3–5 options grouped by genre, with a one-line description each. **Don't dump the full list.** A long menu freezes decisions.
47
47
 
@@ -51,7 +51,7 @@ Default is the template slug (so `3d-third-person-controller` → directory `3d-
51
51
 
52
52
  > "What do you want to call your project? (default: `3d-third-person-controller`)"
53
53
 
54
- ### 4. Clone
54
+ ### 4. Create
55
55
 
56
56
  ```
57
57
  summer create <template-slug> <project-name>
@@ -64,9 +64,9 @@ summer create 3d-third-person-controller hero-game
64
64
  ```
65
65
 
66
66
  This:
67
- - Clones the latest `main` (or default branch) of `template-3d-third-person-controller`
67
+ - Fetches the exact commit pinned in the registry entry — never a default branch — and refuses if the tree digest does not match
68
68
  - Drops the `.git` directory so the user starts with their own history
69
- - Prints the source URL for transparency
69
+ - Records the template pin into the project's `.summer/project.json` and prints the source for transparency
70
70
 
71
71
  Pass `--keep-git` if the user wants the upstream history (rare).
72
72
 
@@ -76,7 +76,7 @@ Pass `--keep-git` if the user wants the upstream history (rare).
76
76
  summer run <project-name>
77
77
  ```
78
78
 
79
- Confirm it opens. Then invoke `summer:play` to verify the template runs as expected before doing any custom work on top.
79
+ Confirm it opens. Then invoke `play` to verify the template runs as expected before doing any custom work on top.
80
80
 
81
81
  ## Anti-patterns
82
82
 
@@ -85,21 +85,21 @@ Confirm it opens. Then invoke `summer:play` to verify the template runs as expec
85
85
  | Recommend a template from memory | List evolves. `summer list templates` is the source of truth. |
86
86
  | Dump the full template list as a wall of text | 5 curated picks beats 20 generic ones. Match to user intent. |
87
87
  | Default the project name to the slug | `3d-third-person-controller/` is a UX-hostile directory name. Always ask. |
88
- | Skip `summer run` after cloning | Templates can break upstream — verify the user has a working baseline before they edit. |
89
- | Clone into an existing directory | The CLI errors out; respect that and ask for a different name. |
88
+ | Skip `summer run` after creating | Verify the user has a working baseline before they edit. |
89
+ | Create into an existing directory | The CLI errors out; respect that and ask for a different name. |
90
90
 
91
91
  ## Edge cases
92
92
 
93
93
  - **`git` not installed** → `summer create` errors with a clear message. Tell the user to install git, or fall back to a built-in template.
94
- - **Template archived or moved** → the API filter excludes archived repos. If a user names one explicitly that's gone, the create command lists what's currently available.
95
- - **Network down** → fall back to `empty` or `3d-basic`. Don't pretend the remote ones exist.
94
+ - **Template retired or renamed** → it leaves the registry (renames leave an alias). If a user names one explicitly that's gone, the create command lists what's currently available.
95
+ - **Network down** → pinned templates cannot be fetched; fall back to `empty` or `3d-basic`, which are generated locally.
96
96
 
97
97
  ## After the user is in
98
98
 
99
99
  Once the project is created and running, hand off cleanly. The next skill that fires depends on the template:
100
100
 
101
- - Third-person controller → likely `summer:scene-composition` or `summer:gdscript-patterns` next.
102
- - Multiplayer starter → `summer:setup-multiplayer` or `summer:host-authoritative-state`.
103
- - 2D platformer → `summer:design-mechanic` for the platforming feel, then `summer:design-level`.
101
+ - Third-person controller → likely `scene-composition` or `gdscript-patterns` next.
102
+ - Multiplayer starter → `setup-multiplayer` or `host-authoritative-state`.
103
+ - 2D platformer → `design-mechanic` for the platforming feel, then `design-level`.
104
104
 
105
105
  Don't auto-fire the next skill — wait for the user to say what they want to change first.
@@ -0,0 +1,23 @@
1
+ id: skill/browse-templates
2
+ kind: skill
3
+ version: 1.0.4
4
+ summary: List available Summer Engine project templates, present the choices, and create a project from the chosen one via summer create.
5
+ use_when:
6
+ - the user wants to see available Summer Engine project templates, start from an existing template, or asks what templates exist
7
+ - picking a starting point and unsure which starter templates already exist
8
+ facets:
9
+ lifecycle:
10
+ - build
11
+ domains:
12
+ - scenes
13
+ - project
14
+ modalities:
15
+ - project
16
+ compatibility:
17
+ engine: ">=4.6"
18
+ source: official
19
+ license: MIT
20
+ status: stable
21
+ recommended: true
22
+ aliases:
23
+ - skills/scene-and-project/browse-templates
@@ -0,0 +1,366 @@
1
+ ---
2
+ name: celeste-momentum-platforming
3
+ description: "Use when building or tuning Celeste-style momentum-based precision platformer movement in SummerEngine (Godot 4): tuned gravity/fall, run acceleration, variable-height jumps with coyote time, dashes, wall jumps/slides, climb stamina, and pixel-scale corner correction, using the exact tuning constants extracted from Celeste's open-source Player class."
4
+ license: MIT
5
+ category: game-feel
6
+ tags:
7
+ - platformer
8
+ - movement
9
+ - game-feel
10
+ - controller
11
+ - godot4
12
+ confidence: extracted
13
+ ---
14
+
15
+ # Celeste-Style Momentum Platforming (Movement System)
16
+
17
+ ## Outcome
18
+
19
+ A 2D character controller for SummerEngine that reproduces the tuning architecture and forgiveness mechanics of Celeste's player movement: momentum-based running with distinct ground/air acceleration, variable-height jumping with coyote time, a multi-directional dash with cooldown and residual speed, wall interaction (jump, slide, climb with stamina), and pixel-scale corner corrections that make near-miss inputs succeed instead of fail.
20
+
21
+ ## When to Use
22
+
23
+ - Building a precision 2D platformer in SummerEngine where movement feel is the core gameplay.
24
+ - Porting or prototyping Celeste-style mechanics (dash, wall jump, climb stamina).
25
+ - Tuning an existing platformer controller that feels "unfair" or unresponsive — the forgiveness systems below are the primary fix.
26
+
27
+ Do not use for: 3D character controllers, physics-driven (RigidBody) movement, or games where floaty/arcade jump physics are desired over momentum precision.
28
+
29
+ ## Core Principle
30
+
31
+ Celeste's movement is a **single controller class driven by an explicit integer state machine**, with all feel-critical numbers as a **flat compile-time constants table** at the top of the class. The retrieved source (Player.cs, 5,471 lines) defines states `Normal=0, Climb=1, Dash=2, Swim=3, Boost=4, RedDash=5, HitSquash=6, Launch=7, Pickup=8, DreamDash=9` (+ a Summit state), each with Begin/Update/End callbacks. State transitions are direct integer assignments.
32
+
33
+ The second principle: **forgiveness at the pixel and millisecond scale**. The code repeatedly nudges the player 2–6 pixels or grants 50–200 ms windows so that inputs which are *almost* correct still succeed. This is the source of the "tightest" feel described in the originating post.
34
+
35
+ ## Tuning Constants (verbatim from Player.cs)
36
+
37
+ Celeste's units are pixels/second for speeds and pixels/second² for accelerations at its native resolution; times in seconds. When porting, preserve the ratios more than the absolute numbers if your pixels-per-meter differs.
38
+
39
+ ### Gravity & Falling
40
+ | Constant | Value | Feel role |
41
+ |---|---|---|
42
+ | Gravity | 900 | Base downward acceleration |
43
+ | MaxFall | 160 | Terminal fall speed (normal) |
44
+ | HalfGravThreshold | 40 | Below this vertical speed, gravity is halved (floaty apex) |
45
+ | FastMaxFall | 240 | Terminal fall speed when fast-falling (hold down) |
46
+ | FastMaxAccel | 300 | Acceleration toward FastMaxFall |
47
+
48
+ ### Running
49
+ | Constant | Value | Feel role |
50
+ |---|---|---|
51
+ | MaxRun | 90 | Top ground speed |
52
+ | RunAccel | 1000 | Ground acceleration (~11× MaxRun — near-instant response) |
53
+ | RunReduce | 400 | Deceleration when input stops |
54
+ | AirMult | 0.65 | Air control multiplier on acceleration |
55
+ | HoldingMaxRun | 70 | Reduced top speed while carrying objects |
56
+ | HoldMinTime | 0.35 | Min time before hold-reduction applies |
57
+ | WalkSpeed | 64 | Slow-walk speed |
58
+ | DuckFriction | 500 | Friction while crouched |
59
+
60
+ ### Jumping
61
+ | Constant | Value | Feel role |
62
+ |---|---|---|
63
+ | JumpGraceTime | 0.1 | **Coyote time** — jump input valid 100 ms after leaving ground |
64
+ | JumpSpeed | -105 | Initial jump velocity |
65
+ | JumpHBoost | 40 | Horizontal boost added on jump |
66
+ | VarJumpTime | 0.2 | **Variable jump** — held jump sustains/boosts for up to 200 ms |
67
+ | CeilingVarJumpGrace | 0.05 | Grace before ceiling cancels variable jump |
68
+ | UpwardCornerCorrection | 4 | px nudge to slip past near-miss ceiling corners while rising |
69
+ | WallSpeedRetentionTime | 0.06 | Horizontal speed retained briefly after wall interactions |
70
+ | BounceAutoJumpTime | 0.1 | Auto-jump window off bouncy surfaces |
71
+
72
+ ### Wall Interaction
73
+ | Constant | Value | Feel role |
74
+ |---|---|---|
75
+ | WallJumpCheckDist | 3 | px probe distance for wall detection |
76
+ | WallJumpForceTime | 0.16 | Duration of forced horizontal speed after wall jump |
77
+ | WallJumpHSpeed | 130 | = MaxRun + JumpHBoost; forced away-from-wall speed |
78
+ | WallSlideStartMax | 20 | Initial wall slide speed cap |
79
+ | WallSlideTime | 1.2 | Time over which wall slide behavior ramps |
80
+ | ClimbGrabYMult | 0.2 | Vertical speed multiplied by 0.2 on grab |
81
+
82
+ ### Super Variants
83
+ | Constant | Value |
84
+ |---|---|
85
+ | SuperJumpH | 260 |
86
+ | SuperWallJumpSpeed | -160 |
87
+ | SuperWallJumpH | 170 (= MaxRun + JumpHBoost×2) |
88
+ | SuperWallJumpForceTime | 0.2 |
89
+ | SuperWallJumpVarTime | 0.25 |
90
+ | BounceSpeed / SuperBounceSpeed | -140 / -185 |
91
+ | DuckSuperJumpXMult / YMult | 1.25 / 0.5 |
92
+
93
+ ### Dash
94
+ | Constant | Value | Feel role |
95
+ |---|---|---|
96
+ | DashSpeed | 240 | Speed during dash |
97
+ | DashTime | 0.15 | Dash duration |
98
+ | EndDashSpeed | 160 | Residual speed after dash ends (2/3 of dash speed) |
99
+ | EndDashUpMult | 0.75 | Residual multiplier for upward dashes |
100
+ | DashCooldown | 0.2 | Time before dash input re-accepted |
101
+ | DashRefillCooldown | 0.1 | Refill timing after landing |
102
+ | DashAttackTime | 0.3 | Active dash collision window |
103
+ | DashCornerCorrection | 4 | px nudge on dash near-misses |
104
+ | DashHJumpThruNudge | 6 | px nudge for horizontal dashes through one-way platforms |
105
+ | DashVFloorSnapDist | 3 | px snap to floor after downward dash |
106
+
107
+ ### Climb / Stamina
108
+ | Constant | Value | Feel role |
109
+ |---|---|---|
110
+ | ClimbMaxStamina | 110 | Total stamina pool |
111
+ | ClimbUpCost | ~45.5/s (100/2.2) | Climbing upward drains ~2.4 s of pool |
112
+ | ClimbStillCost | 10/s (100/10) | Hanging drains ~11 s of pool |
113
+ | ClimbJumpCost | 27.5 (110/4) | Flat cost per climb-jump |
114
+ | ClimbTiredThreshold | 20 | Below this, climb behavior degrades |
115
+ | ClimbUpSpeed | -45 | Climb ascent speed |
116
+ | ClimbDownSpeed | 80 | Climb descent speed |
117
+ | ClimbSlipSpeed | 30 | Slip speed when exhausted |
118
+ | ClimbAccel | 900 | Climb velocity acceleration |
119
+ | ClimbCheckDist / UpCheckDist | 2 / 2 | px probe for grab detection |
120
+ | ClimbHopX / HopY | 100 / -120 | Wall-hop impulse |
121
+ | ClimbHopForceTime | 0.2 | Forced duration of hop impulse |
122
+ | ClimbGrabYMult | 0.2 | Vertical damp on grab |
123
+
124
+ ### Other
125
+ | Constant | Value |
126
+ |---|---|
127
+ | LaunchSpeed / LaunchCancelThreshold | 280 / 220 |
128
+ | LiftYCap / LiftXCap | -130 / 250 |
129
+ | JumpThruAssistSpeed | -40 (upward assist through one-way platforms) |
130
+ | ReboundSpeedX / Y | 120 / -120 |
131
+ | ReflectBoundSpeed | 220 |
132
+ | ThrowRecoil | 80 |
133
+ | DuckWindMult | 0 (ducking negates wind) |
134
+ | SpacePhysicsMult | 0.6 (low-gravity zones) |
135
+
136
+ ## Scene / Node Shape (Godot 4)
137
+
138
+ ```
139
+ Player (CharacterBody2D)
140
+ ├── CollisionShape2D # compact rectangle; Celeste probes at 2–6 px, so shape must be tight
141
+ ├── WallProbeLeft (Area2D) # or use move_and_collide probes at WallJumpCheckDist
142
+ ├── WallProbeRight (Area2D)
143
+ ├── StateMachine (ref in script)
144
+ └── (AnimatedSprite2D / hair, particles optional)
145
+
146
+ World
147
+ ├── TileMapLayer (static solids)
148
+ ├── OneWayPlatforms (TileMapLayer or StaticBody2D with one-way collision)
149
+ └── JumpThru zones
150
+ ```
151
+
152
+ ## Reference Implementation Skeleton (GDScript)
153
+
154
+ ```gdscript
155
+ extends CharacterBody2D
156
+
157
+ # === Tuning table (values from Celeste Player.cs; rescale px if needed) ===
158
+ const GRAVITY := 900.0
159
+ const MAX_FALL := 160.0
160
+ const HALF_GRAV_THRESHOLD := 40.0
161
+ const FAST_MAX_FALL := 240.0
162
+ const FAST_MAX_ACCEL := 300.0
163
+ const MAX_RUN := 90.0
164
+ const RUN_ACCEL := 1000.0
165
+ const RUN_REDUCE := 400.0
166
+ const AIR_MULT := 0.65
167
+ const JUMP_GRACE_TIME := 0.1
168
+ const JUMP_SPEED := -105.0
169
+ const JUMP_H_BOOST := 40.0
170
+ const VAR_JUMP_TIME := 0.2
171
+ const UPWARD_CORNER_CORRECTION := 4
172
+ const WALL_SPEED_RETENTION_TIME := 0.06
173
+ const WALL_JUMP_CHECK_DIST := 3
174
+ const WALL_JUMP_FORCE_TIME := 0.16
175
+ const WALL_JUMP_H_SPEED := MAX_RUN + JUMP_H_BOOST # 130
176
+ const DASH_SPEED := 240.0
177
+ const DASH_TIME := 0.15
178
+ const END_DASH_SPEED := 160.0
179
+ const END_DASH_UP_MULT := 0.75
180
+ const DASH_COOLDOWN := 0.2
181
+ const DASH_CORNER_CORRECTION := 4
182
+ const CLIMB_MAX_STAMINA := 110.0
183
+ const CLIMB_UP_COST := 100.0 / 2.2
184
+ const CLIMB_STILL_COST := 100.0 / 10.0
185
+ const CLIMB_JUMP_COST := 110.0 / 4.0
186
+ const CLIMB_UP_SPEED := -45.0
187
+ const CLIMB_DOWN_SPEED := 80.0
188
+ const CLIMB_SLIP_SPEED := 30.0
189
+ const CLIMB_CHECK_DIST := 2
190
+
191
+ enum St { NORMAL, CLIMB, DASH, SWIM, BOOST, RED_DASH, HIT_SQUASH, LAUNCH, PICKUP, DREAM_DASH }
192
+
193
+ var state: int = St.NORMAL
194
+ var var_jump_timer: float = 0.0
195
+ var jump_grace_timer: float = 0.0 # coyote time
196
+ var dash_cooldown_timer: float = 0.0
197
+ var dash_timer: float = 0.0
198
+ var dash_dir: Vector2 = Vector2.ZERO
199
+ var wall_jump_force_timer: float = 0.0
200
+ var wall_speed_retention_timer: float = 0.0
201
+ var stamina: float = CLIMB_MAX_STAMINA
202
+
203
+ func _physics_process(delta: float) -> void:
204
+ match state:
205
+ St.NORMAL: _normal_update(delta)
206
+ St.DASH: _dash_update(delta)
207
+ St.CLIMB: _climb_update(delta)
208
+ # ... remaining states
209
+ move_and_slide()
210
+
211
+ func _normal_update(delta: float) -> void:
212
+ # --- Gravity with apex float and fast-fall ---
213
+ var max_fall := MAX_FALL
214
+ if Input.is_action_pressed("ui_down") and not is_on_floor():
215
+ max_fall = FAST_MAX_FALL
216
+ var grav := GRAVITY
217
+ if absf(velocity.y) < HALF_GRAV_THRESHOLD and velocity.y < 0.0:
218
+ grav *= 0.5
219
+ velocity.y = minf(velocity.y + grav * delta, max_fall)
220
+
221
+ # --- Run acceleration, reduced in air ---
222
+ var input_x := Input.get_axis("ui_left", "ui_right")
223
+ var accel := RUN_ACCEL if is_on_floor() else RUN_ACCEL * AIR_MULT
224
+ if input_x != 0.0:
225
+ velocity.x = move_toward(velocity.x, input_x * MAX_RUN, accel * delta)
226
+ else:
227
+ velocity.x = move_toward(velocity.x, 0.0, RUN_REDUCE * delta)
228
+
229
+ # --- Coyote time bookkeeping ---
230
+ if is_on_floor():
231
+ jump_grace_timer = JUMP_GRACE_TIME
232
+ else:
233
+ jump_grace_timer -= delta
234
+
235
+ # --- Jump with variable height ---
236
+ if Input.is_action_just_pressed("ui_accept") and jump_grace_timer > 0.0:
237
+ velocity.y = JUMP_SPEED
238
+ velocity.x += signf(input_x) * JUMP_H_BOOST if input_x != 0.0 else 0.0
239
+ var_jump_timer = VAR_JUMP_TIME
240
+ jump_grace_timer = 0.0
241
+ if var_jump_timer > 0.0 and Input.is_action_pressed("ui_accept"):
242
+ var_jump_timer -= delta
243
+ # hold sustains upward velocity; release cuts it
244
+ elif var_jump_timer > 0.0:
245
+ var_jump_timer = 0.0
246
+ if velocity.y < 0.0:
247
+ velocity.y *= 0.5 # jump cut on release (standard platformer pattern)
248
+
249
+ # --- Wall probe and wall jump ---
250
+ var wall_dir := _probe_wall() # raycast WALL_JUMP_CHECK_DIST px each side
251
+ if wall_dir != 0 and Input.is_action_just_pressed("ui_accept"):
252
+ velocity.x = -wall_dir * WALL_JUMP_H_SPEED
253
+ wall_jump_force_timer = WALL_JUMP_FORCE_TIME
254
+ velocity.y = JUMP_SPEED
255
+ var_jump_timer = VAR_JUMP_TIME
256
+
257
+ if wall_jump_force_timer > 0.0:
258
+ wall_jump_force_timer -= delta # lock horizontal input during forced push
259
+
260
+ # --- Dash entry ---
261
+ if dash_cooldown_timer <= 0.0 and Input.is_action_just_pressed("dash"):
262
+ state = St.DASH
263
+ dash_dir = _aim_direction() # 8-way from input axes
264
+ dash_timer = DASH_TIME
265
+ dash_cooldown_timer = DASH_COOLDOWN
266
+ velocity = dash_dir * DASH_SPEED
267
+
268
+ func _dash_update(delta: float) -> void:
269
+ dash_timer -= delta
270
+ velocity = dash_dir * DASH_SPEED # no gravity during dash
271
+ if dash_timer <= 0.0 or _collided_during_dash():
272
+ state = St.NORMAL
273
+ # Residual speed: keep EndDashSpeed, reduced for upward dashes
274
+ var residual := END_DASH_SPEED
275
+ if dash_dir.y < 0.0:
276
+ residual *= END_DASH_UP_MULT
277
+ velocity = dash_dir.normalized() * minf(velocity.length(), residual)
278
+
279
+ func _climb_update(delta: float) -> void:
280
+ var input_y := Input.get_axis("ui_up", "ui_down")
281
+ if input_y < 0.0:
282
+ velocity.y = CLIMB_UP_SPEED
283
+ stamina -= CLIMB_UP_COST * delta
284
+ elif input_y > 0.0:
285
+ velocity.y = CLIMB_DOWN_SPEED
286
+ else:
287
+ velocity.y = minf(velocity.y + GRAVITY * delta * 0.1, CLIMB_SLIP_SPEED)
288
+ stamina -= CLIMB_STILL_COST * delta
289
+ velocity.x = 0.0
290
+ if stamina <= 0.0 or not _touching_wall():
291
+ state = St.NORMAL
292
+ if Input.is_action_just_pressed("ui_accept"):
293
+ stamina -= CLIMB_JUMP_COST
294
+ state = St.NORMAL
295
+ velocity.y = JUMP_SPEED
296
+
297
+ func _probe_wall() -> int:
298
+ # Space-aware probe: returns -1 (wall left), 1 (wall right), 0 (none)
299
+ # Use move_and_collide or a WALL_JUMP_CHECK_DIST raycast against solids.
300
+ return 0
301
+ ```
302
+
303
+ The skeleton above is a structural translation for Godot; the exact per-frame update bodies from Player.cs were not fully retrievable (see evidence limitations). The constants, state IDs, and confirmed behaviors (corner correction loops, variable-jump window logic, forced wall-jump timers, stamina costs, squish safety) are extracted directly from the source.
304
+
305
+ ## Confirmed Behavioral Patterns to Replicate
306
+
307
+ 1. **Corner correction:** on near-miss collisions (rising jump, dash), loop through ±4 px perpendicular offsets, test for clearance, and shift the player to the first clear position. Do not fail the move; nudge it through.
308
+ 2. **Variable-jump window:** `varJumpTimer` runs up to 0.2 s; a ceiling grace of 0.05 s prevents premature cancellation at the apex. The window zeroes on specific collision conditions, not on a raw timer expiry alone.
309
+ 3. **Forced wall-jump time:** for 0.16 s after a wall jump, horizontal input does not override the forced 130 px/s push. This prevents immediate re-stick to the wall.
310
+ 4. **Wall speed retention:** a 0.06 s timer retains horizontal speed across wall interactions; `NormalEnd` resets it along with `wallBoostTimer` and `hopWaitX`.
311
+ 5. **Squish safety:** if crushed, try (in order) ducking, repositioning to target, wiggle-nudging; only kill the player if all fail. Never instakill on a recoverable geometric overlap.
312
+ 6. **Jump-through assist:** one-way platforms apply a -40 (gentle upward) assist speed during pass-through.
313
+ 7. **Dash floor snap / jump-thru nudge:** after downward dashes, snap up to 3 px to the floor; horizontal dashes nudge up to 6 px through jump-throughs.
314
+
315
+ ## Implementation Steps
316
+
317
+ 1. Create the constants table first, exactly as listed. Keep it at the top of the player script as the single tuning surface (mirroring Player.cs structure).
318
+ 2. Implement the state machine as an enum + match, with per-state begin/update/end functions. Start with NORMAL, DASH, CLIMB; add BOOST, HIT_SQUASH, LAUNCH as encounters require.
319
+ 3. Implement gravity/fall tuning (apex float via HalfGravThreshold, fast-fall, MaxFall clamp) and run acceleration (RunAccel/RunReduce/AirMult).
320
+ 4. Implement jump + coyote time + variable jump height + jump cut on release.
321
+ 5. Implement wall probing (3 px), wall jump with forced-time lock, and wall slide.
322
+ 6. Implement dash with 8-way aim, cooldown, residual EndDashSpeed, and corner correction.
323
+ 7. Implement climb stamina with the three cost rates and tired threshold.
324
+ 8. Add forgiveness pass: upward corner correction on jump, dash nudges, jump-through assist, wall speed retention, squish-safety cascade.
325
+ 9. Rescale units if SummerEngine's pixels-per-meter differs from Celeste's native resolution: preserve ratios (e.g., DashSpeed ≈ 2.67× MaxRun; RunAccel ≈ 11× MaxRun).
326
+
327
+ ## Tunables
328
+
329
+ All constants in the tables above. The highest-leverage feel knobs, in order:
330
+ 1. `JUMP_GRACE_TIME` (coyote) and `VAR_JUMP_TIME` — responsiveness.
331
+ 2. `RUN_ACCEL` vs `AIR_MULT` — ground crispness vs air drift.
332
+ 3. `DASH_SPEED` / `DASH_TIME` / `END_DASH_SPEED` — dash punch and recovery.
333
+ 4. `WALL_JUMP_FORCE_TIME` and `WALL_JUMP_H_SPEED` — wall jump commitment.
334
+ 5. `HALF_GRAV_THRESHOLD` — apex float amount.
335
+
336
+ ## Failure Modes & Gotchas
337
+
338
+ - **Skipping coyote time or variable jump** makes the controller feel unfair even if every other value matches. These two forgiveness systems carry most of the "tight" perception.
339
+ - **Letting horizontal input override the wall-jump force window** causes players to snap back onto the wall immediately.
340
+ - **Applying RunAccel in the air without AirMult** gives full ground control mid-air and destroys momentum feel.
341
+ - **Hard-failing near-miss collisions** instead of corner-correcting (±2–6 px probes) turns visual grazes into deaths.
342
+ - **Instakilling on squish** — the source cascades duck → reposition → wiggle → die. Replicate the cascade.
343
+ - **Treating stamina costs as per-frame instead of per-second** drains the pool ~60× faster.
344
+ - **Copying pixel values without rescaling** if your game's world scale differs — use ratios.
345
+ - **Over-abstracting the controller.** The source is deliberately one flat class with a constants table; splitting it into many components before the feel is dialed makes tuning iterations slow.
346
+
347
+ ## Verification
348
+
349
+ After implementing, test each forgiveness system explicitly:
350
+ 1. Walk off a ledge and press jump up to ~100 ms later — should still jump (coyote).
351
+ 2. Tap vs. hold jump — distinct short and full arc heights (variable jump).
352
+ 3. Jump diagonally into a ceiling corner within ~4 px of clearance — should slip past, not bonk (corner correction).
353
+ 4. Wall jump and hold toward the wall — should still be pushed away for ~0.16 s.
354
+ 5. Dash into a wall edge within ~4 px — should correct rather than stop dead.
355
+ 6. Climb until stamina hits 0 — transition to slip/fall, not instant drop.
356
+ 7. Land from a dash — residual speed ≈ 160 px/s (or ×0.75 for upward), not zero.
357
+ 8. Get crushed by a moving platform — duck/wiggle recovery before any death.
358
+
359
+ ## Confidence
360
+
361
+ `extracted` — All tuning values, state IDs, and confirmed behavioral patterns are taken directly from the retrieved Player.cs source. Per-state update-loop bodies from the middle of the 182 KB file were not retrievable (tool truncation); where the skeleton fills standard platformer patterns (e.g., jump-cut-on-release), this is noted as structural translation, not extracted code. Not yet verified inside SummerEngine.
362
+
363
+ ## Evidence
364
+
365
+ - sources/web/celeste-player-cs/source.md — primary source record: constants tables, state machine, confirmed behavioral snippets, retrieval limitations.
366
+ - sources/x/valigo-celeste-movement/source.md — originating post and primary-source identification.
@@ -0,0 +1,33 @@
1
+ id: skill/celeste-momentum-platforming
2
+ kind: skill
3
+ version: 0.1.1
4
+ summary: "Celeste-style 2D precision platformer movement — momentum running, coyote time, variable jumps, dash, wall jump/slide, climb stamina, pixel corner correction."
5
+ use_when:
6
+ - "make the platformer movement feel like Celeste"
7
+ - "add coyote time, variable jump height, and a dash to my 2D platformer"
8
+ - "add wall jumps, wall slides, or climb stamina to a 2D character"
9
+ - "my 2D platformer controller feels unfair or unresponsive"
10
+ do_not_use_when:
11
+ - "3D character controllers, physics-driven RigidBody movement, or games that want floaty arcade jump physics over momentum precision"
12
+ - "intake from the gamedev-knowledge pipeline (source-cited, pipeline-validated, not yet exercised in-engine by the Summer team) — verify results in the engine as you would any technique"
13
+ facets:
14
+ lifecycle:
15
+ - build
16
+ domains:
17
+ - gameplay
18
+ - character-controller
19
+ - game-design
20
+ modalities:
21
+ - scripts
22
+ - scenes
23
+ compatibility:
24
+ engine: ">=4.6"
25
+ related:
26
+ skills:
27
+ - skill/design-mechanic
28
+ - skill/game-feel
29
+ - skill/debugging-game-feel
30
+ source: official
31
+ license: MIT
32
+ status: preview
33
+ recommended: false