summer-engine 3.0.0 → 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (413) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/.claude-plugin/plugin.json +27 -5
  3. package/.codex-plugin/plugin.json +28 -6
  4. package/.cursor-plugin/plugin.json +27 -5
  5. package/.factory-plugin/plugin.json +27 -5
  6. package/.opencode/plugins/summer.js +1 -1
  7. package/CHANGELOG.md +120 -0
  8. package/README.md +22 -7
  9. package/assets/audit/scene_audit.gd +4136 -0
  10. package/assets/seeing/seeing_probe.gd +1873 -0
  11. package/dist/cli/commands/setup.js +6 -19
  12. package/dist/cli/commands/skills.js +57 -32
  13. package/dist/core/api-client.d.ts +9 -1
  14. package/dist/core/api-client.js +21 -4
  15. package/dist/core/capabilities/agent-playbook.js +46 -0
  16. package/dist/core/capabilities/audit/accept.d.ts +55 -0
  17. package/dist/core/capabilities/audit/accept.js +147 -0
  18. package/dist/core/capabilities/audit/args.d.ts +95 -0
  19. package/dist/core/capabilities/audit/args.js +89 -0
  20. package/dist/core/capabilities/audit/audit.d.ts +56 -0
  21. package/dist/core/capabilities/audit/audit.js +287 -0
  22. package/dist/core/capabilities/audit/frame.d.ts +14 -0
  23. package/dist/core/capabilities/audit/frame.js +35 -0
  24. package/dist/core/capabilities/audit/gaps.d.ts +96 -0
  25. package/dist/core/capabilities/audit/gaps.js +257 -0
  26. package/dist/core/capabilities/audit/judge.d.ts +162 -0
  27. package/dist/core/capabilities/audit/judge.js +1134 -0
  28. package/dist/core/capabilities/audit/math.d.ts +110 -0
  29. package/dist/core/capabilities/audit/math.js +263 -0
  30. package/dist/core/capabilities/audit/summary.d.ts +74 -0
  31. package/dist/core/capabilities/audit/summary.js +212 -0
  32. package/dist/core/capabilities/board.d.ts +31 -0
  33. package/dist/core/capabilities/board.js +43 -0
  34. package/dist/core/capabilities/camera-view.d.ts +4 -2
  35. package/dist/core/capabilities/camera-view.js +6 -3
  36. package/dist/core/capabilities/connect-signal.d.ts +85 -0
  37. package/dist/core/capabilities/connect-signal.js +285 -0
  38. package/dist/core/capabilities/engine-fallbacks.d.ts +5 -0
  39. package/dist/core/capabilities/engine-fallbacks.js +5 -0
  40. package/dist/core/capabilities/engine-ops.d.ts +5 -1
  41. package/dist/core/capabilities/engine-ops.js +0 -3
  42. package/dist/core/capabilities/engine-receipt.d.ts +12 -0
  43. package/dist/core/capabilities/engine-receipt.js +26 -0
  44. package/dist/core/capabilities/file-read.d.ts +64 -0
  45. package/dist/core/capabilities/file-read.js +325 -0
  46. package/dist/core/capabilities/game-task-plan.js +4 -2
  47. package/dist/core/capabilities/grep.d.ts +60 -0
  48. package/dist/core/capabilities/grep.js +190 -0
  49. package/dist/core/capabilities/inspect-node.d.ts +56 -0
  50. package/dist/core/capabilities/inspect-node.js +225 -0
  51. package/dist/core/capabilities/inspect-resource.d.ts +61 -0
  52. package/dist/core/capabilities/inspect-resource.js +376 -0
  53. package/dist/core/capabilities/math3d.d.ts +28 -0
  54. package/dist/core/capabilities/math3d.js +88 -0
  55. package/dist/core/capabilities/motion-generation.d.ts +62 -0
  56. package/dist/core/capabilities/motion-generation.js +138 -0
  57. package/dist/core/capabilities/placement-batch.d.ts +102 -0
  58. package/dist/core/capabilities/placement-batch.js +483 -0
  59. package/dist/core/capabilities/placement-math.d.ts +70 -0
  60. package/dist/core/capabilities/placement-math.js +209 -0
  61. package/dist/core/capabilities/placement-script.d.ts +42 -0
  62. package/dist/core/capabilities/placement-script.js +1096 -0
  63. package/dist/core/capabilities/placement.d.ts +485 -0
  64. package/dist/core/capabilities/placement.js +1731 -0
  65. package/dist/core/capabilities/project-context.d.ts +33 -2
  66. package/dist/core/capabilities/project-context.js +87 -4
  67. package/dist/core/capabilities/replace-node.d.ts +91 -0
  68. package/dist/core/capabilities/replace-node.js +423 -0
  69. package/dist/core/capabilities/runtime-control.d.ts +20 -4
  70. package/dist/core/capabilities/runtime-control.js +67 -2
  71. package/dist/core/capabilities/scene-batch.d.ts +63 -0
  72. package/dist/core/capabilities/scene-batch.js +394 -0
  73. package/dist/core/capabilities/scene-readback.d.ts +36 -0
  74. package/dist/core/capabilities/scene-readback.js +54 -0
  75. package/dist/core/capabilities/seeing/args.d.ts +348 -0
  76. package/dist/core/capabilities/seeing/args.js +178 -0
  77. package/dist/core/capabilities/seeing/candidates.d.ts +127 -0
  78. package/dist/core/capabilities/seeing/candidates.js +282 -0
  79. package/dist/core/capabilities/seeing/math.d.ts +134 -0
  80. package/dist/core/capabilities/seeing/math.js +269 -0
  81. package/dist/core/capabilities/seeing/probe.d.ts +62 -0
  82. package/dist/core/capabilities/seeing/probe.js +188 -0
  83. package/dist/core/capabilities/seeing/scoring.d.ts +235 -0
  84. package/dist/core/capabilities/seeing/scoring.js +639 -0
  85. package/dist/core/capabilities/seeing/seeing.d.ts +233 -0
  86. package/dist/core/capabilities/seeing/seeing.js +1341 -0
  87. package/dist/core/capabilities/seeing/shot-store.d.ts +52 -0
  88. package/dist/core/capabilities/seeing/shot-store.js +204 -0
  89. package/dist/core/capabilities/surface-snap-mesh.d.ts +88 -0
  90. package/dist/core/capabilities/surface-snap-mesh.js +425 -0
  91. package/dist/core/capabilities/surface-snap.d.ts +77 -0
  92. package/dist/core/capabilities/surface-snap.js +461 -0
  93. package/dist/core/capabilities/tool-dispatch.js +231 -72
  94. package/dist/core/capabilities/tscn.d.ts +85 -0
  95. package/dist/core/capabilities/tscn.js +391 -0
  96. package/dist/core/capabilities/world-snapshot.d.ts +58 -0
  97. package/dist/core/capabilities/world-snapshot.js +150 -0
  98. package/dist/core/capability-skew.d.ts +5 -5
  99. package/dist/core/capability-skew.js +14 -6
  100. package/dist/core/headless/worker-engine-client.d.ts +1 -1
  101. package/dist/core/headless/worker-engine-client.js +2 -2
  102. package/dist/core/library-read.d.ts +37 -5
  103. package/dist/core/library-read.js +264 -33
  104. package/dist/core/library-search.d.ts +2 -2
  105. package/dist/core/skills-registry.d.ts +9 -1
  106. package/dist/core/skills-registry.js +25 -2
  107. package/dist/installer/agent-config.d.ts +9 -4
  108. package/dist/installer/agent-config.js +194 -392
  109. package/dist/installer/agent-table.d.ts +119 -0
  110. package/dist/installer/agent-table.js +619 -0
  111. package/dist/installer/setup.js +4 -2
  112. package/dist/installer/skill-locations.d.ts +8 -17
  113. package/dist/installer/skill-locations.js +22 -101
  114. package/dist/installer/version-check.d.ts +5 -1
  115. package/dist/installer/version-check.js +38 -28
  116. package/dist/mcp/server.js +9 -3
  117. package/dist/mcp/tools/asset-tools.js +21 -3
  118. package/dist/mcp/tools/audit-tools.d.ts +23 -0
  119. package/dist/mcp/tools/audit-tools.js +60 -0
  120. package/dist/mcp/tools/debug-tools.js +3 -1
  121. package/dist/mcp/tools/file-tools.js +17 -4
  122. package/dist/mcp/tools/generate-tools.js +74 -66
  123. package/dist/mcp/tools/library-tools.js +2 -0
  124. package/dist/mcp/tools/perception-tools.js +6 -19
  125. package/dist/mcp/tools/placement-tools.d.ts +24 -0
  126. package/dist/mcp/tools/placement-tools.js +91 -0
  127. package/dist/mcp/tools/project-tools.js +18 -15
  128. package/dist/mcp/tools/scene-tools.js +71 -83
  129. package/dist/mcp/tools/seeing-tools.d.ts +24 -0
  130. package/dist/mcp/tools/seeing-tools.js +64 -0
  131. package/dist/mcp/tools/spatial-tools.js +17 -9
  132. package/dist/mcp/tools/visual-tools.js +59 -7
  133. package/gemini-extension.json +26 -4
  134. package/integrations/README.md +48 -19
  135. package/integrations/amp/README.md +12 -0
  136. package/integrations/amp/manifest-target.json +3 -0
  137. package/integrations/antigravity/README.md +12 -0
  138. package/integrations/antigravity/manifest-target.json +3 -0
  139. package/integrations/claude-desktop/README.md +12 -0
  140. package/integrations/claude-desktop/manifest-target.json +3 -0
  141. package/integrations/cline/README.md +8 -9
  142. package/integrations/cline-cli/README.md +12 -0
  143. package/integrations/cline-cli/manifest-target.json +3 -0
  144. package/integrations/copilot-jetbrains/README.md +12 -0
  145. package/integrations/copilot-jetbrains/manifest-target.json +3 -0
  146. package/integrations/crush/README.md +12 -0
  147. package/integrations/crush/manifest-target.json +3 -0
  148. package/integrations/github-copilot/README.md +8 -8
  149. package/integrations/goose/README.md +12 -0
  150. package/integrations/goose/manifest-target.json +3 -0
  151. package/integrations/grok-build/README.md +12 -0
  152. package/integrations/grok-build/manifest-target.json +3 -0
  153. package/integrations/hermes/README.md +12 -0
  154. package/integrations/hermes/manifest-target.json +3 -0
  155. package/integrations/junie/README.md +12 -0
  156. package/integrations/junie/manifest-target.json +3 -0
  157. package/integrations/kilo-code/README.md +6 -10
  158. package/integrations/kimi-code/README.md +12 -0
  159. package/integrations/kimi-code/manifest-target.json +3 -0
  160. package/integrations/kiro/README.md +12 -0
  161. package/integrations/kiro/manifest-target.json +3 -0
  162. package/integrations/lm-studio/README.md +8 -8
  163. package/integrations/mistral-vibe/README.md +12 -0
  164. package/integrations/mistral-vibe/manifest-target.json +3 -0
  165. package/integrations/opencode/README.md +9 -12
  166. package/integrations/qoder/README.md +12 -0
  167. package/integrations/qoder/manifest-target.json +3 -0
  168. package/integrations/qwen-code/README.md +12 -0
  169. package/integrations/qwen-code/manifest-target.json +3 -0
  170. package/integrations/roo-code/README.md +8 -7
  171. package/integrations/rovo-dev/README.md +12 -0
  172. package/integrations/rovo-dev/manifest-target.json +3 -0
  173. package/integrations/trae/README.md +12 -0
  174. package/integrations/trae/manifest-target.json +3 -0
  175. package/integrations/visual-studio/README.md +12 -0
  176. package/integrations/visual-studio/manifest-target.json +3 -0
  177. package/integrations/vscode-copilot/README.md +9 -9
  178. package/integrations/warp/README.md +12 -0
  179. package/integrations/warp/manifest-target.json +3 -0
  180. package/integrations/windsurf/README.md +8 -9
  181. package/integrations/zed/README.md +12 -0
  182. package/integrations/zed/manifest-target.json +3 -0
  183. package/library/references/mcp-tools-reference/mcp-tools-reference.md +59 -15
  184. package/library/references/mcp-tools-reference/resource.yaml +1 -1
  185. package/library/references/summer-folder/resource.yaml +1 -1
  186. package/library/references/summer-folder/summer-folder.md +1 -1
  187. package/library/skills/3d-lighting/SKILL.md +1 -1
  188. package/library/skills/README.md +264 -0
  189. package/library/skills/adaptive-music/SKILL.md +1 -1
  190. package/library/skills/agent-playtesting/SKILL.md +1 -1
  191. package/library/skills/ai-characters-in-games/SKILL.md +220 -0
  192. package/library/skills/ai-characters-in-games/resource.yaml +30 -0
  193. package/library/skills/ambient-bed/SKILL.md +1 -1
  194. package/library/skills/animated-loop/SKILL.md +1 -1
  195. package/library/skills/animation-tree/SKILL.md +1 -1
  196. package/library/skills/art-direction/SKILL.md +1 -1
  197. package/library/skills/asset-strategy/SKILL.md +2 -1
  198. package/library/skills/asset-strategy/resource.yaml +2 -1
  199. package/library/skills/audio-direction/SKILL.md +1 -1
  200. package/library/skills/auto-fire-targeting/SKILL.md +1 -1
  201. package/library/skills/brainstorm-game/SKILL.md +1 -1
  202. package/library/skills/brainstorming/SKILL.md +1 -1
  203. package/library/skills/browse-templates/SKILL.md +3 -3
  204. package/library/skills/browse-templates/resource.yaml +1 -1
  205. package/library/skills/camera-rigs/SKILL.md +128 -0
  206. package/library/skills/camera-rigs/resource.yaml +29 -0
  207. package/library/skills/celeste-momentum-platforming/SKILL.md +1 -1
  208. package/library/skills/character-animation-wiring/SKILL.md +1 -1
  209. package/library/skills/character-model/SKILL.md +1 -1
  210. package/library/skills/character-movement/SKILL.md +326 -0
  211. package/library/skills/character-movement/references/default-third-person-controller.gd +201 -0
  212. package/library/skills/character-movement/references/default-third-person-verification-probe.gd +154 -0
  213. package/library/skills/character-movement/references/movement-3d.md +136 -0
  214. package/library/skills/character-movement/references/platformer-feel.md +83 -0
  215. package/library/skills/character-movement/resource.yaml +40 -0
  216. package/library/skills/character-portrait/SKILL.md +1 -1
  217. package/library/skills/cinematic-cutscene/SKILL.md +1 -1
  218. package/library/skills/combat-basics/SKILL.md +159 -0
  219. package/library/skills/combat-basics/references/projectiles-and-aoe.md +100 -0
  220. package/library/skills/combat-basics/resource.yaml +34 -0
  221. package/library/skills/concept-art/SKILL.md +1 -1
  222. package/library/skills/create-asset-sheet/SKILL.md +1 -1
  223. package/library/skills/debug/SKILL.md +1 -1
  224. package/library/skills/debugging-game-feel/SKILL.md +1 -1
  225. package/library/skills/design-level/SKILL.md +1 -1
  226. package/library/skills/design-mechanic/SKILL.md +1 -1
  227. package/library/skills/design-npc/SKILL.md +1 -1
  228. package/library/skills/diagnosing-perf-regressions/SKILL.md +1 -1
  229. package/library/skills/dispatching-parallel-agents/SKILL.md +1 -1
  230. package/library/skills/driving-the-editor-ui/SKILL.md +1 -1
  231. package/library/skills/environment-kit/SKILL.md +1 -1
  232. package/library/skills/export-and-ship/SKILL.md +1 -1
  233. package/library/skills/fabricating-assets/SKILL.md +1 -1
  234. package/library/skills/facial-and-lipsync/SKILL.md +1 -1
  235. package/library/skills/fps-controller/SKILL.md +9 -7
  236. package/library/skills/fps-controller/resource.yaml +4 -1
  237. package/library/skills/game-feel/SKILL.md +1 -1
  238. package/library/skills/gameskill/SKILL.md +1 -1
  239. package/library/skills/gdscript-patterns/SKILL.md +1 -1
  240. package/library/skills/generate-motion/SKILL.md +9 -9
  241. package/library/skills/generate-motion/resource.yaml +2 -1
  242. package/library/skills/godogen-visual-proof-game-generation/SKILL.md +1 -1
  243. package/library/skills/headless-scripting/SKILL.md +1 -1
  244. package/library/skills/in-game-purchases/SKILL.md +254 -0
  245. package/library/skills/in-game-purchases/resource.yaml +29 -0
  246. package/library/skills/instantiate-asset-pack/SKILL.md +1 -1
  247. package/library/skills/investigating-bugs/SKILL.md +1 -1
  248. package/library/skills/lumera-single-image-scene-reconstruction/SKILL.md +1 -1
  249. package/library/skills/make-game/SKILL.md +25 -3
  250. package/library/skills/make-game/references/2d-platformer-polish.md +93 -0
  251. package/library/skills/make-game/references/2d-platformer.md +117 -0
  252. package/library/skills/make-game/references/2d-rpg-content.md +234 -0
  253. package/library/skills/make-game/references/2d-rpg.md +241 -0
  254. package/library/skills/make-game/references/2d-survivors-progression.md +201 -0
  255. package/library/skills/make-game/references/2d-survivors.md +237 -0
  256. package/library/skills/make-game/references/3d-fps-systems.md +216 -0
  257. package/library/skills/make-game/references/3d-fps.md +177 -0
  258. package/library/skills/make-game/references/3d-horror-systems.md +186 -0
  259. package/library/skills/make-game/references/3d-horror.md +201 -0
  260. package/library/skills/make-game/references/3d-third-person-systems.md +220 -0
  261. package/library/skills/make-game/references/3d-third-person.md +215 -0
  262. package/library/skills/make-game/resource.yaml +6 -1
  263. package/library/skills/multiplayer/SKILL.md +150 -0
  264. package/library/skills/multiplayer/resource.yaml +33 -0
  265. package/library/skills/multiplayer-movement/SKILL.md +510 -0
  266. package/library/skills/multiplayer-movement/files.md +501 -0
  267. package/library/skills/multiplayer-movement/resource.yaml +30 -0
  268. package/library/skills/multiplayer-project/SKILL.md +521 -0
  269. package/library/skills/multiplayer-project/files.md +448 -0
  270. package/library/skills/multiplayer-project/resource.yaml +36 -0
  271. package/library/skills/multiplayer-publish/SKILL.md +229 -0
  272. package/library/skills/multiplayer-publish/export-errors.md +89 -0
  273. package/library/skills/multiplayer-publish/resource.yaml +28 -0
  274. package/library/skills/multiplayer-state/SKILL.md +438 -0
  275. package/library/skills/multiplayer-state/files.md +592 -0
  276. package/library/skills/multiplayer-state/resource.yaml +35 -0
  277. package/library/skills/multiplayer-testing/SKILL.md +236 -0
  278. package/library/skills/multiplayer-testing/resource.yaml +39 -0
  279. package/library/skills/music-track/SKILL.md +1 -1
  280. package/library/skills/navigate-summer/SKILL.md +1 -1
  281. package/library/skills/new-project/SKILL.md +1 -1
  282. package/library/skills/organic-model/SKILL.md +1 -1
  283. package/library/skills/pixel-art/SKILL.md +1 -1
  284. package/library/skills/play/SKILL.md +1 -1
  285. package/library/skills/playtesting-a-feature/SKILL.md +1 -1
  286. package/library/skills/procedural-animation/SKILL.md +2 -2
  287. package/library/skills/procedural-animation/resource.yaml +1 -1
  288. package/library/skills/prop-model/SKILL.md +1 -1
  289. package/library/skills/psx-retro-rendering/SKILL.md +1 -1
  290. package/library/skills/realtime-wet-surfaces/SKILL.md +2 -2
  291. package/library/skills/remote-deploy/SKILL.md +1 -1
  292. package/library/skills/retarget/SKILL.md +1 -1
  293. package/library/skills/running-in-the-cloud/SKILL.md +1 -1
  294. package/library/skills/save-load/SKILL.md +156 -0
  295. package/library/skills/save-load/resource.yaml +27 -0
  296. package/library/skills/scene-composition/SKILL.md +1 -1
  297. package/library/skills/scene-hierarchy-design/SKILL.md +1 -1
  298. package/library/skills/scene-scripting/SKILL.md +1 -1
  299. package/library/skills/scene-to-level/SKILL.md +1 -1
  300. package/library/skills/skill-create/SKILL.md +1 -1
  301. package/library/skills/skill-improve/SKILL.md +1 -1
  302. package/library/skills/skill-test/SKILL.md +1 -1
  303. package/library/skills/skintokens-auto-rigging/SKILL.md +1 -1
  304. package/library/skills/skybox-panorama/SKILL.md +1 -1
  305. package/library/skills/sound-effect/SKILL.md +1 -1
  306. package/library/skills/spatial-placement/SKILL.md +134 -3
  307. package/library/skills/spatial-placement/references/kit-placement-tools.md +364 -0
  308. package/library/skills/spatial-placement/resource.yaml +16 -2
  309. package/library/skills/sprite-sheet/SKILL.md +1 -1
  310. package/library/skills/summer-analytics/SKILL.md +147 -0
  311. package/library/skills/summer-analytics/resource.yaml +28 -0
  312. package/library/skills/summer-friends/SKILL.md +226 -0
  313. package/library/skills/summer-friends/resource.yaml +28 -0
  314. package/library/skills/summer-leaderboards/SKILL.md +231 -0
  315. package/library/skills/summer-leaderboards/resource.yaml +30 -0
  316. package/library/skills/summer-match-results/SKILL.md +286 -0
  317. package/library/skills/summer-match-results/resource.yaml +32 -0
  318. package/library/skills/summer-matchmaking/SKILL.md +301 -0
  319. package/library/skills/summer-matchmaking/resource.yaml +32 -0
  320. package/library/skills/summer-parties/SKILL.md +253 -0
  321. package/library/skills/summer-parties/resource.yaml +30 -0
  322. package/library/skills/summer-player-data/SKILL.md +322 -0
  323. package/library/skills/summer-player-data/resource.yaml +30 -0
  324. package/library/skills/summer-store/SKILL.md +271 -0
  325. package/library/skills/summer-store/resource.yaml +29 -0
  326. package/library/skills/summer-world-chat/SKILL.md +195 -0
  327. package/library/skills/summer-world-chat/resource.yaml +30 -0
  328. package/library/skills/summer-world-saves/SKILL.md +284 -0
  329. package/library/skills/summer-world-saves/resource.yaml +29 -0
  330. package/library/skills/text-to-motion/SKILL.md +99 -0
  331. package/library/skills/text-to-motion/prompts-and-controls.md +34 -0
  332. package/library/skills/text-to-motion/resource.yaml +41 -0
  333. package/library/skills/text-to-motion/rigging-for-text-motion.md +54 -0
  334. package/library/skills/tileable-texture/SKILL.md +1 -1
  335. package/library/skills/trailer-shot/SKILL.md +1 -1
  336. package/library/skills/tune-performance/SKILL.md +1 -1
  337. package/library/skills/ui-basics/SKILL.md +10 -1
  338. package/library/skills/ui-graphics/SKILL.md +1 -1
  339. package/library/skills/use-widget-asset/SKILL.md +1 -1
  340. package/library/skills/using-summer/SKILL.md +2 -2
  341. package/library/skills/using-summer/resource.yaml +2 -2
  342. package/library/skills/vehicle-model/SKILL.md +1 -1
  343. package/library/skills/verification-before-completion/SKILL.md +1 -1
  344. package/library/skills/verifying-scenes/SKILL.md +76 -2
  345. package/library/skills/verifying-scenes/resource.yaml +13 -2
  346. package/library/skills/vfx-dissolve/SKILL.md +1 -1
  347. package/library/skills/vfx-fire/SKILL.md +1 -1
  348. package/library/skills/vfx-hit-spark/SKILL.md +1 -1
  349. package/library/skills/vfx-lightning/SKILL.md +1 -1
  350. package/library/skills/vfx-magic-glow/SKILL.md +1 -1
  351. package/library/skills/vfx-muzzle-flash/SKILL.md +1 -1
  352. package/library/skills/vfx-smoke/SKILL.md +1 -1
  353. package/library/skills/vfx-water-ripple/SKILL.md +1 -1
  354. package/library/skills/voice-line/SKILL.md +1 -1
  355. package/library/skills/web-and-touch-input/SKILL.md +38 -0
  356. package/library/skills/web-and-touch-input/resource.yaml +28 -0
  357. package/library/skills/web-compatibility-look/SKILL.md +62 -0
  358. package/library/skills/web-compatibility-look/resource.yaml +30 -0
  359. package/library/skills/world-building-3d/SKILL.md +8 -1
  360. package/library/skills/world-building-3d/references/spatial-tools.md +1 -1
  361. package/library/skills/world-building-3d/resource.yaml +2 -1
  362. package/library/skills/writing-plans/SKILL.md +1 -1
  363. package/library/skills/writing-skills/SKILL.md +1 -1
  364. package/library/templates/3d-lan-multiplayer-starter/resource.yaml +2 -2
  365. package/library/tools/attach-to-surface/resource.yaml +142 -0
  366. package/library/tools/batch/resource.yaml +9 -3
  367. package/library/tools/connect-ports/resource.yaml +120 -0
  368. package/library/tools/connect-signal/resource.yaml +3 -2
  369. package/library/tools/debug-views/resource.yaml +94 -0
  370. package/library/tools/frame-nodes/resource.yaml +104 -0
  371. package/library/tools/frame-shot/resource.yaml +134 -0
  372. package/library/tools/generate-motion/resource.yaml +44 -9
  373. package/library/tools/get-board/resource.yaml +50 -0
  374. package/library/tools/get-project-context/resource.yaml +13 -2
  375. package/library/tools/grep/resource.yaml +77 -0
  376. package/library/tools/inspect-asset/resource.yaml +71 -0
  377. package/library/tools/inspect-node/resource.yaml +9 -2
  378. package/library/tools/inspect-resource/resource.yaml +16 -5
  379. package/library/tools/instantiate-scene/resource.yaml +27 -2
  380. package/library/tools/measure/resource.yaml +96 -0
  381. package/library/tools/place-adjacent/resource.yaml +113 -0
  382. package/library/tools/play/resource.yaml +15 -2
  383. package/library/tools/raycast/resource.yaml +101 -0
  384. package/library/tools/read-file/resource.yaml +36 -2
  385. package/library/tools/read-library/resource.yaml +2 -2
  386. package/library/tools/repeat-along/resource.yaml +129 -0
  387. package/library/tools/replace-node/resource.yaml +11 -5
  388. package/library/tools/scene-audit/resource.yaml +144 -0
  389. package/library/tools/screenshot/resource.yaml +13 -2
  390. package/library/tools/search-assets/resource.yaml +18 -0
  391. package/library/tools/shot-sheet/resource.yaml +110 -0
  392. package/library/tools/snap-to-surface/resource.yaml +4 -1
  393. package/library/tools/world-snapshot/resource.yaml +24 -3
  394. package/library/tools/zoom/resource.yaml +105 -0
  395. package/package.json +3 -3
  396. package/registry/generated/aliases.json +17 -3
  397. package/registry/generated/counts.json +3 -3
  398. package/registry/generated/gemini-extension.json +26 -4
  399. package/registry/generated/index.json +2154 -469
  400. package/registry/generated/marketplace.claude.json +2 -2
  401. package/registry/generated/plugin.claude.json +27 -5
  402. package/registry/generated/plugin.codex.json +28 -6
  403. package/registry/generated/plugin.cursor.json +27 -5
  404. package/registry/generated/plugin.factory.json +27 -5
  405. package/registry/generated/skills-index.md +264 -0
  406. package/registry/generated/skills-registry.json +901 -206
  407. package/registry/generated/templates-registry.json +2 -2
  408. package/library/skills/host-authoritative-state/SKILL.md +0 -332
  409. package/library/skills/host-authoritative-state/resource.yaml +0 -28
  410. package/library/skills/peer-to-peer-multiplayer/SKILL.md +0 -373
  411. package/library/skills/peer-to-peer-multiplayer/resource.yaml +0 -28
  412. package/library/skills/setup-multiplayer/SKILL.md +0 -336
  413. package/library/skills/setup-multiplayer/resource.yaml +0 -28
@@ -4,848 +4,1543 @@
4
4
  {
5
5
  "id": "skill/3d-lighting",
6
6
  "name": "3d-lighting",
7
- "description": "Use when setting up lighting in a Summer Engine 3D scene — adding lights, configuring WorldEnvironment, sky, or shadows. Covers DirectionalLight3D versus Omni versus Spot, shadow tuning, ambient and sky-driven lighting, and the current Summer rendering conventions. Trigger on \"lighting\", \"shadows\", \"WorldEnvironment\", \"sun\", \"ambient\", \"sky\", \"light\".",
7
+ "description": "Set up 3D scene lighting — DirectionalLight3D vs Omni vs Spot, WorldEnvironment, sky, shadow tuning, ambient — per current Summer conventions.",
8
8
  "clients": "all",
9
9
  "recommended": true,
10
10
  "status": "stable",
11
- "path": "library/skills/3d-lighting/"
11
+ "path": "library/skills/3d-lighting/",
12
+ "domains": [
13
+ "rendering",
14
+ "lighting"
15
+ ]
12
16
  },
13
17
  {
14
18
  "id": "skill/adaptive-music",
15
19
  "name": "adaptive-music",
16
- "description": "Use when wiring music stems to game state — combat / explore / boss / tension crossfades on a shared bus. Pairs generated stems with a state machine and AudioBus structure. Trigger on \"adaptive music\", \"dynamic music\", \"music changes when combat starts\", \"layered music\", \"vertical music\", \"wire stems\".",
20
+ "description": "Wire music stems to game state — combat/explore/boss/tension crossfades on a shared bus, paired with a state machine and AudioBus structure.",
17
21
  "clients": "all",
18
22
  "recommended": false,
19
23
  "status": "stable",
20
- "path": "library/skills/adaptive-music/"
24
+ "path": "library/skills/adaptive-music/",
25
+ "domains": [
26
+ "audio",
27
+ "gameplay"
28
+ ]
21
29
  },
22
30
  {
23
31
  "id": "skill/agent-playtesting",
24
32
  "name": "agent-playtesting",
25
- "description": "Use when proving a gameplay feature, reproducing a bug, or comparing two variants by driving the LIVE running game yourself — deterministic launch (seed, fixed_fps, offscreen instances), frame-stamped probes before and after every action, exact frame stepping, scripted or recorded input. The doctrine behind summer_game_probe, summer_game_input, summer_game_control and the summer_runtime_* tools.",
33
+ "description": "Playtest by driving the LIVE game — deterministic launch, frame-stamped probes before/after each action, exact frame steps, scripted or recorded input.",
26
34
  "clients": "all",
27
35
  "recommended": true,
28
36
  "status": "preview",
29
- "path": "library/skills/agent-playtesting/"
37
+ "path": "library/skills/agent-playtesting/",
38
+ "domains": [
39
+ "runtime",
40
+ "playtest",
41
+ "verification",
42
+ "agent-workflow"
43
+ ]
44
+ },
45
+ {
46
+ "id": "skill/ai-characters-in-games",
47
+ "name": "ai-characters-in-games",
48
+ "description": "Safe AI characters in published games: no keys in the build, replies via Summer's player AI gateway, moderation, spend caps, offline brain and a report button.",
49
+ "clients": "all",
50
+ "recommended": false,
51
+ "status": "preview",
52
+ "path": "library/skills/ai-characters-in-games/",
53
+ "domains": [
54
+ "ai",
55
+ "npc"
56
+ ]
30
57
  },
31
58
  {
32
59
  "id": "skill/ambient-bed",
33
60
  "name": "ambient-bed",
34
- "description": "Use when generating a long looping location ambience — forest at dawn, dungeon air, city street, spaceship hum, cave drip. Non-melodic, low-energy, never draws attention. Wires as a looping AudioStreamPlayer on the Ambient bus with a marked seamless loop. Trigger on \"ambient bed\", \"room tone\", \"background ambience\", \"forest ambience\", \"dungeon air\", \"make it sound like a cave\".",
61
+ "description": "Generate a long looping location ambience — forest, dungeon, city, spaceship, cave — a looping AudioStreamPlayer on the Ambient bus with a seamless loop.",
35
62
  "clients": "all",
36
63
  "recommended": false,
37
64
  "status": "stable",
38
- "path": "library/skills/ambient-bed/"
65
+ "path": "library/skills/ambient-bed/",
66
+ "domains": [
67
+ "audio",
68
+ "assets"
69
+ ]
39
70
  },
40
71
  {
41
72
  "id": "skill/animated-loop",
42
73
  "name": "animated-loop",
43
- "description": "Use when generating a short looping video clip — splash screen background, animated logo backdrop, idle title-screen footage, looping environment ambience. Output must loop seamlessly and is wired as a VideoStreamPlayer with autoplay and loop set true. Trigger on \"looping background\", \"splash loop\", \"title screen video\", \"animated backdrop\", \"menu background loop\", \"ambient loop video\", \"looping clip\", \"seamless loop\".",
74
+ "description": "Generate a short seamlessly-looping video clip — splash background, animated logo backdrop, idle title-screen footage — wired as a looping VideoStreamPlayer.",
44
75
  "clients": "all",
45
76
  "recommended": false,
46
77
  "status": "stable",
47
- "path": "library/skills/animated-loop/"
78
+ "path": "library/skills/animated-loop/",
79
+ "domains": [
80
+ "video",
81
+ "assets"
82
+ ]
48
83
  },
49
84
  {
50
85
  "id": "skill/animation-tree",
51
86
  "name": "animation-tree",
52
- "description": "Use when the user has clips on a character and needs them to play in response to gameplay — idle/walk/run blend, attacks that interrupt locomotion, hit reactions that override everything. Designs and wires Summer Engine AnimationTree state machines and blend trees. Trigger on \"AnimationTree\", \"state machine\", \"blend tree\", \"transition\", \"play animation when\", \"character keeps T-posing\", \"wire animations\".",
87
+ "description": "Design and wire AnimationTree state machines and blend trees so clips respond to gameplay — locomotion blends, attack interrupts, hit reactions.",
53
88
  "clients": "all",
54
89
  "recommended": false,
55
90
  "status": "stable",
56
- "path": "library/skills/animation-tree/"
91
+ "path": "library/skills/animation-tree/",
92
+ "domains": [
93
+ "animation",
94
+ "3d"
95
+ ]
57
96
  },
58
97
  {
59
98
  "id": "skill/art-direction",
60
99
  "name": "art-direction",
61
- "description": "Use when defining the visual style of the game — references, palette, mood, lighting plan, post-processing, do/don't list. Outputs an art bible at `.summer/art-bible.md`. Trigger on \"art direction\", \"art bible\", \"visual style\", \"color palette\", \"what should it look like\", \"the look\".",
100
+ "description": "Define the game's visual style — references, palette, mood, lighting plan, post-processing, do/don't list — output as an art bible at .summer/art-bible.md.",
62
101
  "clients": "all",
63
102
  "recommended": true,
64
103
  "status": "stable",
65
- "path": "library/skills/art-direction/"
104
+ "path": "library/skills/art-direction/",
105
+ "domains": [
106
+ "rendering",
107
+ "lighting"
108
+ ]
66
109
  },
67
110
  {
68
111
  "id": "skill/asset-strategy",
69
112
  "name": "asset-strategy",
70
- "description": "Use when planning asset creation, picking an asset pipeline, or routing an \"I need a [thing]\" request to the right specialist skill. Disambiguates between 2D / 3D / audio / video / VFX / animation pipelines and dispatches via the Skill tool. Trigger on \"assets\", \"asset pipeline\", \"make a model\", \"I need a sound\", \"create concept art\", \"generate something\", broad creative requests.",
113
+ "description": "Route any 'I need a [thing]' asset request to the right specialist skill — disambiguates 2D / 3D / audio / video / VFX / animation pipelines.",
71
114
  "clients": "all",
72
115
  "recommended": true,
73
116
  "status": "stable",
74
- "path": "library/skills/asset-strategy/"
117
+ "path": "library/skills/asset-strategy/",
118
+ "domains": [
119
+ "assets",
120
+ "pipeline"
121
+ ]
75
122
  },
76
123
  {
77
124
  "id": "skill/audio-direction",
78
125
  "name": "audio-direction",
79
- "description": "Use when defining the sonic identity — music style, instruments, SFX vocabulary, dynamic music plan. Outputs an audio bible at `.summer/audio-bible.md`. Trigger on \"audio direction\", \"audio bible\", \"music style\", \"sound design\", \"what should it sound like\", \"dynamic music\".",
126
+ "description": "Define the game's sonic identity — music style, instruments, SFX vocabulary, dynamic music plan — output as an audio bible at .summer/audio-bible.md.",
80
127
  "clients": "all",
81
128
  "recommended": true,
82
129
  "status": "stable",
83
- "path": "library/skills/audio-direction/"
130
+ "path": "library/skills/audio-direction/",
131
+ "domains": [
132
+ "audio",
133
+ "game-design"
134
+ ]
84
135
  },
85
136
  {
86
137
  "id": "skill/auto-fire-targeting",
87
138
  "name": "auto-fire-targeting",
88
- "description": "Use when designing or fixing the targeting system for an auto-fire weapon (survivors-genre, top-down ARPG, tower-defense). Covers the pending-damage pattern that prevents over-commit when bullet flight time is longer than fire rate. Trigger on \"auto-fire\", \"auto-aim\", \"weapon targeting\", \"targeting\", \"wasted bullets\", \"overkill\", \"damage prediction\", \"survivors weapon\".",
139
+ "description": "Design or fix auto-fire weapon targeting (survivors, top-down ARPG, tower defense) — the pending-damage pattern that prevents over-commit and overkill.",
89
140
  "clients": "all",
90
141
  "recommended": false,
91
142
  "status": "stable",
92
- "path": "library/skills/auto-fire-targeting/"
143
+ "path": "library/skills/auto-fire-targeting/",
144
+ "domains": [
145
+ "gameplay",
146
+ "game-design"
147
+ ]
93
148
  },
94
149
  {
95
150
  "id": "skill/brainstorm-game",
96
151
  "name": "brainstorm-game",
97
- "description": "Use when the user wants help deciding what game to make, scoping a new project, or turning a vague idea into a buildable plan. Walks through genre, scope, core loop, mechanics, and art direction, then writes a 1-page brief to `.summer/GameSoul.md`. Trigger on \"brainstorm a game\", \"what should I make\", \"I want to make a game\", \"help me scope\", \"new game idea\".",
152
+ "description": "Turn a vague idea into a buildable plan — genre, scope, core loop, mechanics, art direction — written as a 1-page brief to .summer/GameSoul.md.",
98
153
  "clients": "all",
99
154
  "recommended": true,
100
155
  "status": "stable",
101
- "path": "library/skills/brainstorm-game/"
156
+ "path": "library/skills/brainstorm-game/",
157
+ "domains": [
158
+ "scenes",
159
+ "project"
160
+ ]
102
161
  },
103
162
  {
104
163
  "id": "skill/brainstorming",
105
164
  "name": "brainstorming",
106
- "description": "Use when starting creative work — designing a game, picking a mechanic, building features or components, modifying behavior. Explores user intent, requirements, and design before implementation. MUST run before any creative work.",
165
+ "description": "Explore user intent, requirements, and design before implementation — must run before any creative work: features, components, mechanics, behavior.",
107
166
  "clients": "all",
108
167
  "recommended": true,
109
168
  "status": "stable",
110
- "path": "library/skills/brainstorming/"
169
+ "path": "library/skills/brainstorming/",
170
+ "domains": [
171
+ "agent-workflow",
172
+ "game-design"
173
+ ]
111
174
  },
112
175
  {
113
176
  "id": "skill/browse-templates",
114
177
  "name": "browse-templates",
115
- "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\".",
178
+ "description": "List available Summer Engine project templates, present the choices, and create a project from the chosen one via summer create.",
116
179
  "clients": "all",
117
180
  "recommended": true,
118
181
  "status": "stable",
119
- "path": "library/skills/browse-templates/"
182
+ "path": "library/skills/browse-templates/",
183
+ "domains": [
184
+ "scenes",
185
+ "project"
186
+ ]
187
+ },
188
+ {
189
+ "id": "skill/camera-rigs",
190
+ "name": "camera-rigs",
191
+ "description": "Camera rigs for 2D and 3D: Camera2D follow with limits, first-person head camera, SpringArm3D third-person, orthographic top-down, FOV guidance.",
192
+ "clients": "all",
193
+ "recommended": false,
194
+ "status": "preview",
195
+ "path": "library/skills/camera-rigs/",
196
+ "domains": [
197
+ "scenes",
198
+ "3d",
199
+ "2d"
200
+ ]
120
201
  },
121
202
  {
122
203
  "id": "skill/celeste-momentum-platforming",
123
204
  "name": "celeste-momentum-platforming",
124
- "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.",
205
+ "description": "Celeste-style 2D precision platformer movement — momentum running, coyote time, variable jumps, dash, wall jump/slide, climb stamina, pixel corner correction.",
125
206
  "clients": "all",
126
207
  "recommended": false,
127
208
  "status": "preview",
128
- "path": "library/skills/celeste-momentum-platforming/"
209
+ "path": "library/skills/celeste-momentum-platforming/",
210
+ "domains": [
211
+ "gameplay",
212
+ "character-controller",
213
+ "game-design"
214
+ ]
129
215
  },
130
216
  {
131
217
  "id": "skill/character-animation-wiring",
132
218
  "name": "character-animation-wiring",
133
- "description": "Use when a rigged, animated character is in the scene (Meshy rig + generated clips, or an imported GLB) and needs to be wired end to end — inspect the clips and bones that actually arrived, build idle/walk/run locomotion with blend times, method-track footsteps and attack frames, still poses and head tracking, blend-shape facial keys, root motion. Trigger on \"wire the character\", \"hook up the animations\", \"make it walk around\", \"the GLB has animations\", \"footstep events\", \"attack frame\", \"root motion\", \"character slides while walking\".",
219
+ "description": "Wire a rigged, animated character end to end — inspect real clips and bones, locomotion state machine, method-track events, poses, blend shapes, root motion.",
134
220
  "clients": "all",
135
221
  "recommended": false,
136
222
  "status": "stable",
137
- "path": "library/skills/character-animation-wiring/"
223
+ "path": "library/skills/character-animation-wiring/",
224
+ "domains": [
225
+ "animation",
226
+ "3d"
227
+ ]
138
228
  },
139
229
  {
140
230
  "id": "skill/character-model",
141
231
  "name": "character-model",
142
- "description": "Use when generating a humanoid character ready for animation — player avatar, NPC, enemy, boss, companion. Generates a T-pose reference image, gates an un-rigged preview past the user, then runs the Meshy auto-rig pass and wires the result as a CharacterBody3D (movement) or Node3D (cinematic). Trigger on \"make a character\", \"generate the player\", \"I need an enemy model\", \"create an NPC\", \"rigged humanoid\", \"character with a skeleton\", \"model for animation\".",
232
+ "description": "Generate a rigged humanoid — player, NPC, enemy, boss — via T-pose reference, user-gated preview, and Meshy auto-rig, wired as CharacterBody3D or Node3D.",
143
233
  "clients": "all",
144
234
  "recommended": true,
145
235
  "status": "stable",
146
- "path": "library/skills/character-model/"
236
+ "path": "library/skills/character-model/",
237
+ "domains": [
238
+ "3d",
239
+ "assets"
240
+ ]
241
+ },
242
+ {
243
+ "id": "skill/character-movement",
244
+ "name": "character-movement",
245
+ "description": "Player controllers for 2D and 3D, plus the canonical third-person controller for Summer humanoid packages: movement owns translation, clips follow state.",
246
+ "clients": "all",
247
+ "recommended": false,
248
+ "status": "preview",
249
+ "path": "library/skills/character-movement/",
250
+ "domains": [
251
+ "character-controller",
252
+ "gameplay",
253
+ "2d",
254
+ "3d"
255
+ ]
147
256
  },
148
257
  {
149
258
  "id": "skill/character-portrait",
150
259
  "name": "character-portrait",
151
- "description": "Use when generating a single, polished bust/portrait of a character for dialogue UI, character-select screens, lore cards, or codex entries. One character, locked composition, VN-style. Trigger on \"character portrait\", \"dialogue portrait\", \"VN portrait\", \"character bust\", \"headshot\", \"character select image\", \"lore card art\".",
260
+ "description": "Generate a single polished character bust for dialogue UI, character select, lore cards, or codex entries. One character, locked composition, VN-style.",
152
261
  "clients": "all",
153
262
  "recommended": true,
154
263
  "status": "stable",
155
- "path": "library/skills/character-portrait/"
264
+ "path": "library/skills/character-portrait/",
265
+ "domains": [
266
+ "2d",
267
+ "assets"
268
+ ]
156
269
  },
157
270
  {
158
271
  "id": "skill/cinematic-cutscene",
159
272
  "name": "cinematic-cutscene",
160
- "description": "Use when generating a non-interactive cutscene clip — opening scene, story beat, character intro, ending. Locks the look with a reference image, image-to-videos a 5-10s shot, optionally adds TTS dialogue, and wires it as a VideoStreamPlayer that fades in/out. Trigger on \"cutscene\", \"intro cinematic\", \"opening scene\", \"ending cinematic\", \"story beat video\", \"character intro video\", \"in-engine cinematic\", \"non-playable scene\".",
273
+ "description": "Generate a non-interactive cutscene — reference-locked look, a 5-10s image-to-video shot, optional TTS dialogue — wired as a fading VideoStreamPlayer.",
161
274
  "clients": "all",
162
275
  "recommended": true,
163
276
  "status": "stable",
164
- "path": "library/skills/cinematic-cutscene/"
277
+ "path": "library/skills/cinematic-cutscene/",
278
+ "domains": [
279
+ "video",
280
+ "assets"
281
+ ]
282
+ },
283
+ {
284
+ "id": "skill/combat-basics",
285
+ "name": "combat-basics",
286
+ "description": "Damage in Summer Engine: hitbox and hurtbox Areas on opposing layers, a reusable Health component, damage signals, knockback, hit feedback, projectiles.",
287
+ "clients": "all",
288
+ "recommended": false,
289
+ "status": "preview",
290
+ "path": "library/skills/combat-basics/",
291
+ "domains": [
292
+ "gameplay",
293
+ "scripting",
294
+ "game-design"
295
+ ]
165
296
  },
166
297
  {
167
298
  "id": "skill/concept-art",
168
299
  "name": "concept-art",
169
- "description": "Use when the user is exploring art direction — wants 3-4 rough variants of a character, environment, or prop to pick a vibe before committing to a final asset. Generates a batch of evocative concept images, not finals. Trigger on \"concept art\", \"art direction\", \"explore the look\", \"give me some variants\", \"what could this character look like\", \"mood board\", \"rough sketches\".",
300
+ "description": "Explore art direction with 3-4 rough concept variants of a character, environment, or prop to pick a vibe before committing to a final asset.",
170
301
  "clients": "all",
171
302
  "recommended": true,
172
303
  "status": "stable",
173
- "path": "library/skills/concept-art/"
304
+ "path": "library/skills/concept-art/",
305
+ "domains": [
306
+ "2d",
307
+ "assets"
308
+ ]
174
309
  },
175
310
  {
176
311
  "id": "skill/create-asset-sheet",
177
312
  "name": "create-asset-sheet",
178
- "description": "Use when the user wants to generate a pack of 2D game assets from a single prompt — a tile sheet, UI kit, menu screen, character pack, or biome set. The skill plans the prompt, generates a coherent sheet, removes the background, vision-detects each item, classifies it, and saves as a single pack ArtAsset. Trigger on \"asset sheet\", \"asset pack\", \"tile sheet\", \"tileset\", \"UI kit\", \"asset pack for\", \"make me a sheet of\", \"generate a bunch of <category> assets\".",
313
+ "description": "Generate a pack of 2D game assets from one prompt — tile sheet, UI kit, character pack, or biome set — sliced, classified, and saved as one pack ArtAsset.",
179
314
  "clients": "all",
180
315
  "recommended": false,
181
316
  "status": "stable",
182
- "path": "library/skills/create-asset-sheet/"
317
+ "path": "library/skills/create-asset-sheet/",
318
+ "domains": [
319
+ "2d",
320
+ "assets"
321
+ ]
183
322
  },
184
323
  {
185
324
  "id": "skill/debug",
186
325
  "name": "debug",
187
- "description": "Use when the user reports a bug, crash, error, or unexpected behavior in a Summer project, before making code or scene changes. Runs a disciplined script-errors, console, debugger, hypothesis, fix, and verify loop. Trigger on \"debug\", \"crash\", \"error\", \"broken\", \"not working\", \"freezes\", \"wrong\".",
326
+ "description": "Disciplined bug/crash/error loop for Summer projects — script errors, console, debugger, hypothesis, fix, verify — before making code or scene changes.",
188
327
  "clients": "all",
189
328
  "recommended": true,
190
329
  "status": "stable",
191
- "path": "library/skills/debug/"
330
+ "path": "library/skills/debug/",
331
+ "domains": [
332
+ "debug",
333
+ "verification"
334
+ ]
192
335
  },
193
336
  {
194
337
  "id": "skill/debugging-game-feel",
195
338
  "name": "debugging-game-feel",
196
- "description": "Use when a gameplay feature works correctly but feels wrong — floaty jumps, mushy combat, sluggish camera, weightless impacts. Different from logical bug debugging; the bug is subjective and lives in tuning, timing, and feedback layers.",
339
+ "description": "Debug features that work but feel wrong — floaty jumps, mushy combat, sluggish camera — subjective bugs living in tuning, timing, and feedback layers.",
197
340
  "clients": "all",
198
341
  "recommended": false,
199
342
  "status": "stable",
200
- "path": "library/skills/debugging-game-feel/"
343
+ "path": "library/skills/debugging-game-feel/",
344
+ "domains": [
345
+ "agent-workflow",
346
+ "gameplay"
347
+ ]
201
348
  },
202
349
  {
203
350
  "id": "skill/design-level",
204
351
  "name": "design-level",
205
- "description": "Use when designing a single level — layout, pacing, encounters, secrets, reward gating. Outputs a level design doc and a concrete node-tree skeleton for `summer_create_scene`. Trigger on \"design a level\", \"design level 1\", \"tutorial level\", \"boss arena\", \"design the encounter\", \"make a level layout\".",
352
+ "description": "Design a single level — layout, pacing, encounters, secrets, reward gating — outputs a level design doc and a node-tree skeleton for summer_create_scene.",
206
353
  "clients": "all",
207
354
  "recommended": true,
208
355
  "status": "stable",
209
- "path": "library/skills/design-level/"
356
+ "path": "library/skills/design-level/",
357
+ "domains": [
358
+ "level-design",
359
+ "game-design"
360
+ ]
210
361
  },
211
362
  {
212
363
  "id": "skill/design-mechanic",
213
364
  "name": "design-mechanic",
214
- "description": "Use when designing one specific game mechanic in detail — input, response, feedback, failure modes, depth, tunables. Outputs a design doc and a scaffolding-ready node-graph sketch + GDScript stub. Trigger on \"design a mechanic\", \"how should X work\", \"design the parry\", \"design the dash\", \"design the inventory\", \"the loop is broken\".",
365
+ "description": "Design one game mechanic in detail — input, response, feedback, failure modes, depth, tunables — outputs a design doc, node-graph sketch, GDScript stub.",
215
366
  "clients": "all",
216
367
  "recommended": true,
217
368
  "status": "stable",
218
- "path": "library/skills/design-mechanic/"
369
+ "path": "library/skills/design-mechanic/",
370
+ "domains": [
371
+ "gameplay",
372
+ "game-design"
373
+ ]
219
374
  },
220
375
  {
221
376
  "id": "skill/design-npc",
222
377
  "name": "design-npc",
223
- "description": "Use when the user wants to design an enemy, NPC, boss, companion, civilian, or wave-spawned mob's behavior. Walks perception, personality knobs, intent layer, action state machine, telegraphs, defeat handling, and group emergence — outputs a state-machine GDScript stub plus the recommended node tree. Trigger on \"enemy\", \"NPC\", \"boss\", \"companion\", \"AI\", \"behavior\", \"mob\", \"perception\", \"design enemy\".",
378
+ "description": "Design enemy/NPC/boss/companion behavior — perception, personality, intent, action state machine, telegraphs — outputs a GDScript stub plus node tree.",
224
379
  "clients": "all",
225
380
  "recommended": true,
226
381
  "status": "stable",
227
- "path": "library/skills/design-npc/"
382
+ "path": "library/skills/design-npc/",
383
+ "domains": [
384
+ "ai",
385
+ "npc"
386
+ ]
228
387
  },
229
388
  {
230
389
  "id": "skill/diagnosing-perf-regressions",
231
390
  "name": "diagnosing-perf-regressions",
232
- "description": "Use when frame rate, frame time, or load time has gotten worse since a known-good state — \"it used to run at 60, now it's at 30.\" Focused on finding the cause of a regression, not general performance tuning.",
391
+ "description": "Find why frame rate, frame time, or load time got worse since a known-good state — regression hunting, not general performance tuning.",
233
392
  "clients": "all",
234
393
  "recommended": false,
235
394
  "status": "stable",
236
- "path": "library/skills/diagnosing-perf-regressions/"
395
+ "path": "library/skills/diagnosing-perf-regressions/",
396
+ "domains": [
397
+ "agent-workflow",
398
+ "performance"
399
+ ]
237
400
  },
238
401
  {
239
402
  "id": "skill/dispatching-parallel-agents",
240
403
  "name": "dispatching-parallel-agents",
241
- "description": "Use when facing 2+ independent tasks that can be worked on without shared state or sequential dependencies",
404
+ "description": "Work 2+ independent tasks in parallel when they share no state and have no sequential dependencies.",
242
405
  "clients": "all",
243
406
  "recommended": false,
244
407
  "status": "stable",
245
- "path": "library/skills/dispatching-parallel-agents/"
408
+ "path": "library/skills/dispatching-parallel-agents/",
409
+ "domains": [
410
+ "agent-workflow",
411
+ "meta"
412
+ ]
246
413
  },
247
414
  {
248
415
  "id": "skill/driving-the-editor-ui",
249
416
  "name": "driving-the-editor-ui",
250
- "description": "Use when a task is an editor-workflow step a human would do with the mouse — open Project Settings or a dock, switch the 2D/3D/Script main screen, toggle a panel, clear a dialog that is blocking the editor, read what a dock shows — and when deciding whether a request is UI work or scene work. Drives the editor by NAME through summer_ui_actions, reads it as structure through summer_ui_tree, activates the long tail by path through summer_ui_activate, and treats summer_ui_screenshot as the pixels-last fallback. Preview — the ops ship with a follow-up engine build.",
417
+ "description": "Drive the editor UI by name: invoke actions, clear blocking dialogs, switch the main screen, read a dock — and route scene work to the scene tools instead.",
251
418
  "clients": "all",
252
419
  "recommended": false,
253
420
  "status": "preview",
254
- "path": "library/skills/driving-the-editor-ui/"
421
+ "path": "library/skills/driving-the-editor-ui/",
422
+ "domains": [
423
+ "editor",
424
+ "agent-workflow",
425
+ "verification"
426
+ ]
255
427
  },
256
428
  {
257
429
  "id": "skill/environment-kit",
258
430
  "name": "environment-kit",
259
- "description": "Use when generating a modular environment kit — wall pieces, floor tiles, pillars, doors, arches, corner blocks that snap together to form a level. Multiple meshes that share a visual style. Trigger on \"build a dungeon kit\", \"modular walls\", \"level kit\", \"tileset\", \"interior pieces\", \"snap-together pieces\", \"make a kit for the temple\".",
431
+ "description": "Generate a modular environment kit — wall pieces, floor tiles, pillars, doors, arches, corners — snap-together meshes sharing one visual style.",
260
432
  "clients": "all",
261
433
  "recommended": false,
262
434
  "status": "stable",
263
- "path": "library/skills/environment-kit/"
435
+ "path": "library/skills/environment-kit/",
436
+ "domains": [
437
+ "3d",
438
+ "assets"
439
+ ]
264
440
  },
265
441
  {
266
442
  "id": "skill/export-and-ship",
267
443
  "name": "export-and-ship",
268
- "description": "Use when the user wants to assess or prepare a Summer game export. Inventories the templates and targets actually available in the installed Summer Engine build, validates release assets and configuration, and produces only locally supported builds after approval. It does not publish, upload, host, or submit a game. Trigger on \"export\", \"ship\", \"release\", \"build\", \"Steam\", \"itch\", \"HTML5\", \"iOS\", \"Android\", \"submit\", \"publish\".",
444
+ "description": "Assess and prepare a game export: inventory installed templates and targets, validate release assets and config, produce supported builds after approval.",
269
445
  "clients": "all",
270
446
  "recommended": true,
271
447
  "status": "stable",
272
- "path": "library/skills/export-and-ship/"
448
+ "path": "library/skills/export-and-ship/",
449
+ "domains": [
450
+ "deployment",
451
+ "project"
452
+ ]
273
453
  },
274
454
  {
275
455
  "id": "skill/fabricating-assets",
276
456
  "name": "fabricating-assets",
277
- "description": "Use when an asset needs Blender's mesh tooling rather than generation or a library download — a modular kit with exact dimensions and snapping, VFX meshes (shatter fragments, curve sweeps, LOD chains), or decimating/UV-unwrapping/baking a generated model — and you are about to write a bpy script for summer_fabricate_3d. Covers the route decision (fabricate vs generate vs import), the bpy rules that survive glTF export, the script -> import -> snapshot -> screenshot loop, every failure_reason and what to do about it, and the licensing shape (the user's own Blender, never bundled).",
457
+ "description": "Fabricate meshes with a bpy script in the user's own Blender (summer_fabricate_3d) — kits with exact dimensions, VFX meshes, post-processing generated models.",
278
458
  "clients": "all",
279
459
  "recommended": false,
280
460
  "status": "preview",
281
- "path": "library/skills/fabricating-assets/"
461
+ "path": "library/skills/fabricating-assets/",
462
+ "domains": [
463
+ "3d",
464
+ "assets",
465
+ "scripting",
466
+ "agent-workflow"
467
+ ]
282
468
  },
283
469
  {
284
470
  "id": "skill/facial-and-lipsync",
285
471
  "name": "facial-and-lipsync",
286
- "description": "Use when the user has a voice-over (or wants one) and needs the character's mouth to actually move with the words — phoneme extraction from audio, mapping to viseme blendshapes, plus emotional facial expressions (smile, frown, surprise). Trigger on \"lipsync\", \"lip sync\", \"talking head\", \"phonemes\", \"viseme\", \"facial animation\", \"blendshapes\", \"make him talk\", \"dialogue animation\".",
472
+ "description": "Make a character's mouth move with a voice-over — phoneme extraction from audio, viseme blendshape mapping, and emotional facial expressions.",
287
473
  "clients": "all",
288
474
  "recommended": false,
289
475
  "status": "stable",
290
- "path": "library/skills/facial-and-lipsync/"
476
+ "path": "library/skills/facial-and-lipsync/",
477
+ "domains": [
478
+ "animation",
479
+ "3d"
480
+ ]
291
481
  },
292
482
  {
293
483
  "id": "skill/fps-controller",
294
484
  "name": "fps-controller",
295
- "description": "Use when building an FPS, first-person movement, or a 3D character that walks, jumps, and reacts to external forces — production-quality first-person controller with WASD, mouse look, jump, coyote time, jump buffering, air control, and external-velocity handling. Trigger on \"FPS\", \"first-person\", \"WASD\", \"character controller\", \"mouse look\", \"player movement\", \"jump\".",
485
+ "description": "Production-quality first-person controller — WASD, mouse look, jump, coyote time, jump buffering, air control, and external-velocity handling.",
296
486
  "clients": "all",
297
487
  "recommended": true,
298
488
  "status": "stable",
299
- "path": "library/skills/fps-controller/"
489
+ "path": "library/skills/fps-controller/",
490
+ "domains": [
491
+ "character-controller",
492
+ "gameplay"
493
+ ]
300
494
  },
301
495
  {
302
496
  "id": "skill/game-feel",
303
497
  "name": "game-feel",
304
- "description": "Use when a Summer game \"feels flat\", \"lacks impact\", \"needs juice\", or \"needs punch\", or the user asks for hit feedback, screen shake, camera shake, audio ducking, or general game feel. Walks through Summer Engine's hit-flash, trauma camera shake, and audio-ducking stack, wired so one hit fires all three. Trigger on \"vfx\", \"juice\", \"punch\", \"feels flat\", \"game feel\", \"hit flash\", \"screen shake\", \"camera shake\", \"ducking\".",
498
+ "description": "Add juice: hit-flash, trauma-based camera shake, and audio ducking wired so one hit fires all three — for games that feel flat or lack impact.",
305
499
  "clients": "all",
306
500
  "recommended": true,
307
501
  "status": "stable",
308
- "path": "library/skills/game-feel/"
502
+ "path": "library/skills/game-feel/",
503
+ "domains": [
504
+ "vfx",
505
+ "gameplay"
506
+ ]
309
507
  },
310
508
  {
311
509
  "id": "skill/gameskill",
312
510
  "name": "gameskill",
313
- "description": "Use when finishing a game-development session and you want to capture what you just learned as a reusable skill so the next session starts smarter. Trigger on \"gameskill\", \"/gameskill\", \"capture learnings\", \"save to skills\".",
511
+ "description": "Capture what a game-dev session just learned as a reusable skill (project, user or Summer library) so the next session starts smarter.",
314
512
  "clients": "all",
315
513
  "recommended": false,
316
514
  "status": "stable",
317
- "path": "library/skills/gameskill/"
515
+ "path": "library/skills/gameskill/",
516
+ "domains": [
517
+ "agent-workflow",
518
+ "meta"
519
+ ]
318
520
  },
319
521
  {
320
522
  "id": "skill/gdscript-patterns",
321
523
  "name": "gdscript-patterns",
322
- "description": "Use when writing or refactoring GDScript — type hints, signals, exports, onready, lifecycle methods (`_ready` vs `_process` vs `_physics_process`), `get_node` vs `$NodePath`, naming conventions. Trigger on \"GDScript\", \"script\", \"signals\", \"exports\", \"onready\", \"_ready\", \"_process\".",
524
+ "description": "GDScript conventions — type hints, signals, exports, onready, lifecycle methods, get_node vs $NodePath, naming.",
323
525
  "clients": "all",
324
526
  "recommended": true,
325
527
  "status": "stable",
326
- "path": "library/skills/gdscript-patterns/"
528
+ "path": "library/skills/gdscript-patterns/",
529
+ "domains": [
530
+ "scripting",
531
+ "conventions"
532
+ ]
327
533
  },
328
534
  {
329
535
  "id": "skill/generate-motion",
330
536
  "name": "generate-motion",
331
- "description": "Use when the user needs an animation clip on a rigged character — idle/walk/run/attack from the curated Meshy library. Picks the right curated motion, attaches the resulting clip to an AnimationPlayer. Trigger on \"animation\", \"animate\", \"idle\", \"walk\", \"run\", \"attack animation\", \"motion\", \"mocap\", \"dance\", \"death animation\".",
537
+ "description": "Attach an animation clip to a rigged character from the curated Meshy motion library — idle, walk, run, attack — wired via AnimationPlayer.",
332
538
  "clients": "all",
333
539
  "recommended": true,
334
540
  "status": "stable",
335
- "path": "library/skills/generate-motion/"
541
+ "path": "library/skills/generate-motion/",
542
+ "domains": [
543
+ "animation",
544
+ "3d"
545
+ ]
336
546
  },
337
547
  {
338
548
  "id": "skill/godogen-visual-proof-game-generation",
339
549
  "name": "godogen-visual-proof-game-generation",
340
- "description": "Use when adopting Godogen's thin-runtime autonomous game generation and its 'proof over claims' visual QC loop for SummerEngine: capture frames from the running engine, let the host agent self-verify against the brief, and drive bounded fix iterations until a proof recording closes the run.",
550
+ "description": "Godogen-style game generation with a visual QC loop — capture frames from the running game, self-verify against the brief, bounded fix rounds, proof clip.",
341
551
  "clients": "all",
342
552
  "recommended": false,
343
553
  "status": "preview",
344
- "path": "library/skills/godogen-visual-proof-game-generation/"
554
+ "path": "library/skills/godogen-visual-proof-game-generation/",
555
+ "domains": [
556
+ "agent-workflow",
557
+ "verification"
558
+ ]
345
559
  },
346
560
  {
347
561
  "id": "skill/headless-scripting",
348
562
  "name": "headless-scripting",
349
- "description": "Use when a Summer project needs an operation no MCP tool exposes, such as baking a navmesh, generating collision shapes, authoring an Animation, building a TileSet, re-importing assets after file changes, or preparing a supported local export. Runs a GDScript file against Summer Engine from the shell. Also use when a plan involves \"run it headless and screenshot it\", which does not work and this skill explains why.",
563
+ "description": "Run a GDScript file against Summer Engine from the shell for operations no MCP tool exposes — navmesh baking, collision shapes, TileSets, re-imports.",
350
564
  "clients": "all",
351
565
  "recommended": true,
352
566
  "status": "stable",
353
- "path": "library/skills/headless-scripting/"
567
+ "path": "library/skills/headless-scripting/",
568
+ "domains": [
569
+ "agent-workflow",
570
+ "headless"
571
+ ]
354
572
  },
355
573
  {
356
- "id": "skill/host-authoritative-state",
357
- "name": "host-authoritative-state",
358
- "description": "Use when designing the state layer of a multiplayer Summer game: deciding what the host owns, how clients request changes, and how the host validates and broadcasts. Pairs with `/peer-to-peer-multiplayer`. Trigger on \"host authority\", \"authoritative state\", \"state ownership\", \"MP cheating\", \"client validation\", \"RPC patterns\".",
574
+ "id": "skill/in-game-purchases",
575
+ "name": "in-game-purchases",
576
+ "description": "Sell items for Sparks and let short players buy Sparks in game via the Summer purchase sheet: checkout, Sparks purchase, results, testing, store policy.",
359
577
  "clients": "all",
360
- "recommended": true,
361
- "status": "stable",
362
- "path": "library/skills/host-authoritative-state/"
578
+ "recommended": false,
579
+ "status": "preview",
580
+ "path": "library/skills/in-game-purchases/",
581
+ "domains": [
582
+ "gameplay",
583
+ "scripting",
584
+ "game-design"
585
+ ]
363
586
  },
364
587
  {
365
588
  "id": "skill/instantiate-asset-pack",
366
589
  "name": "instantiate-asset-pack",
367
- "description": "Use when the user wants to import or spawn an entire asset pack (the multi-slice ArtAsset produced by `create-asset-sheet`) into the current scene — not a single slice, the whole pack. Reads the pack's per-slice metadata (zOrder, isComposite, parentSliceIndex, widget, bbox), groups composites, sorts children by paint order, and emits the Sprite2D / Node2D / NinePatchRect ops to lay it out correctly. Trigger on \"import the X pack\", \"spawn the UI from pack Y\", \"bring in that asset sheet\", \"add the panel from the pack\".",
590
+ "description": "Import a whole create-asset-sheet pack into the scene: groups composites, sorts paint order, emits Sprite2D/Node2D/NinePatchRect ops to lay it out.",
368
591
  "clients": "all",
369
592
  "recommended": false,
370
593
  "status": "stable",
371
- "path": "library/skills/instantiate-asset-pack/"
594
+ "path": "library/skills/instantiate-asset-pack/",
595
+ "domains": [
596
+ "2d",
597
+ "assets"
598
+ ]
372
599
  },
373
600
  {
374
601
  "id": "skill/investigating-bugs",
375
602
  "name": "investigating-bugs",
376
- "description": "Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes",
603
+ "description": "Systematic investigation of any bug, test failure, or unexpected behavior before proposing fixes.",
377
604
  "clients": "all",
378
605
  "recommended": true,
379
606
  "status": "stable",
380
- "path": "library/skills/investigating-bugs/"
607
+ "path": "library/skills/investigating-bugs/",
608
+ "domains": [
609
+ "agent-workflow",
610
+ "debug"
611
+ ]
381
612
  },
382
613
  {
383
614
  "id": "skill/lumera-single-image-scene-reconstruction",
384
615
  "name": "lumera-single-image-scene-reconstruction",
385
- "description": "Use when building a Lumera-style single-image → editable-engine-scene pipeline in SummerEngine: VLM-parsed object boxes and parametric lights, per-object meshes, HDR environment probe, engine-native assembly, and a bounded dual-agent refinement loop.",
616
+ "description": "Lumera-style single image to editable 3D scene — VLM-parsed object boxes and parametric lights, per-object meshes, HDR probe, .tscn assembly, refinement loop.",
386
617
  "clients": "all",
387
618
  "recommended": false,
388
619
  "status": "preview",
389
- "path": "library/skills/lumera-single-image-scene-reconstruction/"
620
+ "path": "library/skills/lumera-single-image-scene-reconstruction/",
621
+ "domains": [
622
+ "assets",
623
+ "pipeline",
624
+ "3d",
625
+ "scenes"
626
+ ]
390
627
  },
391
628
  {
392
629
  "id": "skill/make-game",
393
630
  "name": "make-game",
394
- "description": "Use when the user says \"make me a game\", \"build me a game\", \"I want to make a [genre] game\", \"let's build something\" — the orchestration spine that runs the full game-dev pipeline: brainstorm → plan → scaffold → build core mechanics → art direction → audio → polish/VFX → verify → ship. Delegates to specialist skills with explicit checkpoints between phases. Trigger on \"make a game\", \"build me a game\", \"create a new game\", \"make me a game\", \"let's build a game\", \"I want to build [game shape]\".",
631
+ "description": "Orchestration spine for 'make me a game': brainstorm, plan, scaffold, mechanics, art, audio, polish, verify, ship — delegates to specialist skills.",
395
632
  "clients": "all",
396
633
  "recommended": true,
397
634
  "status": "stable",
398
- "path": "library/skills/make-game/"
635
+ "path": "library/skills/make-game/",
636
+ "domains": [
637
+ "scenes",
638
+ "project"
639
+ ]
640
+ },
641
+ {
642
+ "id": "skill/multiplayer",
643
+ "name": "multiplayer",
644
+ "description": "Start here for Summer multiplayer: how the authority, clients, Worlds and Sessions fit, and which skill comes next.",
645
+ "clients": "all",
646
+ "recommended": true,
647
+ "status": "stable",
648
+ "path": "library/skills/multiplayer/",
649
+ "domains": [
650
+ "multiplayer",
651
+ "project"
652
+ ]
653
+ },
654
+ {
655
+ "id": "skill/multiplayer-movement",
656
+ "name": "multiplayer-movement",
657
+ "description": "Client-side movement in Summer multiplayer: owners move instantly, others glide, the authority checks each pose.",
658
+ "clients": "all",
659
+ "recommended": false,
660
+ "status": "stable",
661
+ "path": "library/skills/multiplayer-movement/",
662
+ "domains": [
663
+ "multiplayer",
664
+ "character-controller",
665
+ "scripting"
666
+ ]
667
+ },
668
+ {
669
+ "id": "skill/multiplayer-project",
670
+ "name": "multiplayer-project",
671
+ "description": "Set up a Summer multiplayer project: both entry scenes, World and queue files, joining, and a first Local Play run.",
672
+ "clients": "all",
673
+ "recommended": false,
674
+ "status": "stable",
675
+ "path": "library/skills/multiplayer-project/",
676
+ "domains": [
677
+ "multiplayer",
678
+ "project",
679
+ "scripting"
680
+ ]
681
+ },
682
+ {
683
+ "id": "skill/multiplayer-publish",
684
+ "name": "multiplayer-publish",
685
+ "description": "Ship a hosted Summer multiplayer game: the summer.games bundle, server preset, pre-upload checks, and a new Build.",
686
+ "clients": "all",
687
+ "recommended": false,
688
+ "status": "preview",
689
+ "path": "library/skills/multiplayer-publish/",
690
+ "domains": [
691
+ "multiplayer",
692
+ "deployment"
693
+ ]
694
+ },
695
+ {
696
+ "id": "skill/multiplayer-state",
697
+ "name": "multiplayer-state",
698
+ "description": "Authority-owned game state in Summer multiplayer: shared and private State groups, validated Commands, and Events.",
699
+ "clients": "all",
700
+ "recommended": false,
701
+ "status": "stable",
702
+ "path": "library/skills/multiplayer-state/",
703
+ "domains": [
704
+ "multiplayer",
705
+ "game-design",
706
+ "scripting"
707
+ ]
708
+ },
709
+ {
710
+ "id": "skill/multiplayer-testing",
711
+ "name": "multiplayer-testing",
712
+ "description": "Test a Summer multiplayer game with Local Play: several players, a bad network, bots, and what a passing run shows.",
713
+ "clients": "all",
714
+ "recommended": false,
715
+ "status": "stable",
716
+ "path": "library/skills/multiplayer-testing/",
717
+ "domains": [
718
+ "multiplayer",
719
+ "playtest",
720
+ "verification"
721
+ ]
399
722
  },
400
723
  {
401
724
  "id": "skill/music-track",
402
725
  "name": "music-track",
403
- "description": "Use when generating a looped or cinematic music track. Loops are authored at >=30s with a marked loop point; cinematic tracks at >=60s linear. Trigger on \"generate music\", \"make a calm track\", \"boss music\", \"title screen music\", \"main theme\", \"exploration loop\", \"combat track\".",
726
+ "description": "Generate a looped or cinematic music track — loops authored at >=30s with a marked loop point, cinematic tracks at >=60s linear.",
404
727
  "clients": "all",
405
728
  "recommended": true,
406
729
  "status": "stable",
407
- "path": "library/skills/music-track/"
730
+ "path": "library/skills/music-track/",
731
+ "domains": [
732
+ "audio",
733
+ "assets"
734
+ ]
408
735
  },
409
736
  {
410
737
  "id": "skill/navigate-summer",
411
738
  "name": "navigate-summer",
412
- "description": "Use when the user wants to SEE, CHECK, or DECIDE something — \"show me my billing\", \"where do I change my plan\", \"open my games\", \"let me look at the scene\", \"open the MCP guide for Cursor\". Decides whether to open a Summer web page or editor surface for the user or to act through the API, and lands exactly there with summer_open.",
739
+ "description": "When to open a Summer web page or editor surface FOR the user (billing, their games, the scene just built) versus acting through the API, using summer_open.",
413
740
  "clients": "all",
414
741
  "recommended": true,
415
742
  "status": "stable",
416
- "path": "library/skills/navigate-summer/"
743
+ "path": "library/skills/navigate-summer/",
744
+ "domains": [
745
+ "navigation",
746
+ "agent-workflow",
747
+ "meta"
748
+ ]
417
749
  },
418
750
  {
419
751
  "id": "skill/new-project",
420
752
  "name": "new-project",
421
- "description": "Use when the user wants a fresh blank Summer Engine project — not from a template. Asks one question (project name) and runs `summer create empty <name>`. Trigger on \"new project\", \"blank project\", \"empty project\", \"from scratch\", \"start fresh\", \"create new game\", \"blank canvas\", \"scaffold a project\".",
753
+ "description": "Create a fresh blank Summer Engine project — asks one question (project name) and runs summer create empty.",
422
754
  "clients": "all",
423
755
  "recommended": true,
424
756
  "status": "stable",
425
- "path": "library/skills/new-project/"
757
+ "path": "library/skills/new-project/",
758
+ "domains": [
759
+ "scenes",
760
+ "project"
761
+ ]
426
762
  },
427
763
  {
428
764
  "id": "skill/organic-model",
429
765
  "name": "organic-model",
430
- "description": "Use when generating organic shapes — trees, rocks, mushrooms, coral, bushes, alien plants, vines, crystals, fruit, bones. The \"easy mode\" of 3D generation; AI artifacts read as natural irregularity. Trigger on \"make a tree\", \"generate rocks\", \"I need foliage\", \"mushroom prop\", \"alien plants\", \"fill the scene with shrubs\", \"scatter some boulders\".",
766
+ "description": "Generate organic 3D shapes — trees, rocks, mushrooms, coral, plants, vines, crystals — where AI artifacts read as natural irregularity.",
431
767
  "clients": "all",
432
768
  "recommended": false,
433
769
  "status": "stable",
434
- "path": "library/skills/organic-model/"
435
- },
436
- {
437
- "id": "skill/peer-to-peer-multiplayer",
438
- "name": "peer-to-peer-multiplayer",
439
- "description": "Use when starting a multiplayer Summer game from scratch with peer-to-peer host authority. Build the network architecture top-down so authoritative state, routing rules, and real-time rendering are not bolted on later. Use before writing game logic, not after. Trigger on \"multiplayer\", \"peer-to-peer\", \"p2p\", \"co-op\", \"host\", \"multiplayer architecture\", \"add multiplayer\".",
440
- "clients": "all",
441
- "recommended": true,
442
- "status": "stable",
443
- "path": "library/skills/peer-to-peer-multiplayer/"
770
+ "path": "library/skills/organic-model/",
771
+ "domains": [
772
+ "3d",
773
+ "assets"
774
+ ]
444
775
  },
445
776
  {
446
777
  "id": "skill/pixel-art",
447
778
  "name": "pixel-art",
448
- "description": "Use when generating pixel-art assets — sprites, items, tiles, portraits in a pixel style at a specific resolution (32×32, 64×64, 128×128). Pixel-perfect grid, limited palette, retro feel. Trigger on \"pixel art\", \"8-bit art\", \"16-bit sprite\", \"pixel sprite\", \"retro tileset\", \"pixel icon\", \"pixel portrait\".",
779
+ "description": "Generate pixel-art assets — sprites, items, tiles, portraits — at a specific resolution with pixel-perfect grid, limited palette, retro feel.",
449
780
  "clients": "all",
450
781
  "recommended": true,
451
782
  "status": "stable",
452
- "path": "library/skills/pixel-art/"
783
+ "path": "library/skills/pixel-art/",
784
+ "domains": [
785
+ "2d",
786
+ "assets"
787
+ ]
453
788
  },
454
789
  {
455
790
  "id": "skill/play",
456
791
  "name": "play",
457
- "description": "Use when the user says \"play\", \"run it\", \"test it\", \"let me see it\", or \"start the game\". Runs the project in Summer Engine, briefly waits, then reports what's happening — clean run, errors, or warnings.",
792
+ "description": "Run the project in Summer Engine, wait briefly, then report what's happening — clean run, errors, or warnings.",
458
793
  "clients": "all",
459
794
  "recommended": true,
460
795
  "status": "stable",
461
- "path": "library/skills/play/"
796
+ "path": "library/skills/play/",
797
+ "domains": [
798
+ "scenes",
799
+ "project"
800
+ ]
462
801
  },
463
802
  {
464
803
  "id": "skill/playtesting-a-feature",
465
804
  "name": "playtesting-a-feature",
466
- "description": "Use when about to claim a gameplay feature is done, shipped, or working — requires actually running the game and walking through the feature before declaring completion. Static diagnostics and type checks do not count as playtesting.",
805
+ "description": "Before claiming a gameplay feature done: actually run the game and walk through the feature. Static diagnostics and type checks do not count.",
467
806
  "clients": "all",
468
807
  "recommended": true,
469
808
  "status": "stable",
470
- "path": "library/skills/playtesting-a-feature/"
809
+ "path": "library/skills/playtesting-a-feature/",
810
+ "domains": [
811
+ "agent-workflow",
812
+ "verification"
813
+ ]
471
814
  },
472
815
  {
473
816
  "id": "skill/procedural-animation",
474
817
  "name": "procedural-animation",
475
- "description": "Use when the user needs runtime-driven bone modification on top of clips — head look-at, foot IK on uneven ground, hand-grabs-prop, additive lean, hit-direction recoil. Code-and-modifier patterns, not generation. Trigger on \"look at\", \"IK\", \"foot placement\", \"foot IK\", \"lean\", \"additive layer\", \"feet floating\", \"hand penetration\", \"head tracks player\", \"ragdoll\".",
818
+ "description": "Runtime bone modification on top of clips — head look-at, foot IK, hand-grabs-prop, additive lean, recoil. Code-and-modifier patterns, not generation.",
476
819
  "clients": "all",
477
820
  "recommended": false,
478
821
  "status": "stable",
479
- "path": "library/skills/procedural-animation/"
822
+ "path": "library/skills/procedural-animation/",
823
+ "domains": [
824
+ "animation",
825
+ "3d"
826
+ ]
480
827
  },
481
828
  {
482
829
  "id": "skill/prop-model",
483
830
  "name": "prop-model",
484
- "description": "Use when generating a single static 3D prop — sword, barrel, chest, lantern, throne, statue, crate, key, potion, banner. One isolated object, no rigging, wired into the scene as a MeshInstance3D. Trigger on \"make a sword\", \"generate a chest\", \"I need a barrel\", \"add a lantern model\", \"give me a treasure prop\", \"create a statue\".",
831
+ "description": "Generate a single static 3D prop — sword, barrel, chest, lantern, throne, statue — one isolated object, no rigging, wired as a MeshInstance3D.",
485
832
  "clients": "all",
486
833
  "recommended": true,
487
834
  "status": "stable",
488
- "path": "library/skills/prop-model/"
835
+ "path": "library/skills/prop-model/",
836
+ "domains": [
837
+ "3d",
838
+ "assets"
839
+ ]
489
840
  },
490
841
  {
491
842
  "id": "skill/psx-retro-rendering",
492
843
  "name": "psx-retro-rendering",
493
- "description": "Use when building or reviewing a hardware-informed PlayStation 1 rendering pipeline in Godot 4, including low-resolution output, RGB5 color and exact dithering, affine textures, screen-coordinate snapping, draw-order/depth approximation, vertex lighting, PS1 blend modes, and fog — when accuracy and the limits of each Godot approximation matter, not for a generic pixel-art filter.",
844
+ "description": "Hardware-informed PlayStation 1 rendering in Godot 4 — low-res output, RGB5 and exact dither, affine textures, vertex snapping, blend modes, fog; limits named.",
494
845
  "clients": "all",
495
846
  "recommended": false,
496
847
  "status": "preview",
497
- "path": "library/skills/psx-retro-rendering/"
848
+ "path": "library/skills/psx-retro-rendering/",
849
+ "domains": [
850
+ "rendering",
851
+ "3d"
852
+ ]
498
853
  },
499
854
  {
500
855
  "id": "skill/realtime-wet-surfaces",
501
856
  "name": "realtime-wet-surfaces",
502
- "description": "Use when adding real-time wetness to existing Godot 4 materials while preserving their parameter values, mapping Unity's Lit-preserving wet ShaderGraph swap onto a value-copying shader conversion with a geometry-driven wet mask and instance-uniform control.",
857
+ "description": "Real-time wetness on existing Godot 4 materials without losing their values — value-copying wet shader, geometry-driven wet mask, instance-uniform wet amount.",
503
858
  "clients": "all",
504
859
  "recommended": false,
505
860
  "status": "preview",
506
- "path": "library/skills/realtime-wet-surfaces/"
861
+ "path": "library/skills/realtime-wet-surfaces/",
862
+ "domains": [
863
+ "rendering",
864
+ "vfx"
865
+ ]
507
866
  },
508
867
  {
509
868
  "id": "skill/remote-deploy",
510
869
  "name": "remote-deploy",
511
- "description": "Use when the user wants to run or test the game on a real target instead of the editor — a phone, tablet, or another computer (\"deploy to my phone\", \"run on device\", \"test on Android/iOS\", \"remote deploy\", \"one-click deploy\", \"play on hardware\"). Covers the topnav Remote Deploy button, runnable export presets, export templates, and on-device remote debugging. Use when the Remote Deploy button is greyed out and the user wants to know why.",
870
+ "description": "Run or test the game on a real device — phone, tablet, another computer — via the Remote Deploy button, runnable export presets, and on-device debugging.",
512
871
  "clients": "all",
513
872
  "recommended": true,
514
873
  "status": "stable",
515
- "path": "library/skills/remote-deploy/"
874
+ "path": "library/skills/remote-deploy/",
875
+ "domains": [
876
+ "deployment",
877
+ "project"
878
+ ]
516
879
  },
517
880
  {
518
881
  "id": "skill/retarget",
519
882
  "name": "retarget",
520
- "description": "Use when the user wants to apply existing animation clips from one rigged character to a different rigged character — same library, multiple models, no regeneration. Trigger on \"retarget\", \"reuse animation\", \"apply to other character\", \"same animations on different model\", \"share animation library\".",
883
+ "description": "Apply existing animation clips from one rigged character to a different rigged character — same library, multiple models, no regeneration.",
521
884
  "clients": "all",
522
885
  "recommended": false,
523
886
  "status": "stable",
524
- "path": "library/skills/retarget/"
887
+ "path": "library/skills/retarget/",
888
+ "domains": [
889
+ "animation",
890
+ "3d"
891
+ ]
525
892
  },
526
893
  {
527
894
  "id": "skill/running-in-the-cloud",
528
895
  "name": "running-in-the-cloud",
529
- "description": "Use when Summer Engine runs in a cloud container, CI job, remote agent sandbox, or any Linux box with no desktop — installing the engine there, launching it headless, deciding when xvfb-run and software GL are required, and authenticating without a browser. Also use when a tool reports \"engine not running\" in an environment that has no display, or when SUMMER_ENGINE_BINARY / SUMMER_TOKEN come up.",
896
+ "description": "Run Summer Engine on a Linux box with no display — install it, launch headless, know when xvfb + software GL are needed, authenticate without a browser.",
530
897
  "clients": "all",
531
898
  "recommended": false,
532
899
  "status": "stable",
533
- "path": "library/skills/running-in-the-cloud/"
900
+ "path": "library/skills/running-in-the-cloud/",
901
+ "domains": [
902
+ "agent-workflow",
903
+ "project"
904
+ ]
905
+ },
906
+ {
907
+ "id": "skill/save-load",
908
+ "name": "save-load",
909
+ "description": "Persist game state in Summer Engine: user:// paths, JSON progress vs ConfigFile settings, a versioned save schema with migration, autosave hooks.",
910
+ "clients": "all",
911
+ "recommended": false,
912
+ "status": "preview",
913
+ "path": "library/skills/save-load/",
914
+ "domains": [
915
+ "scripting",
916
+ "gameplay"
917
+ ]
534
918
  },
535
919
  {
536
920
  "id": "skill/scene-composition",
537
921
  "name": "scene-composition",
538
- "description": "Use when building or organizing Summer Engine scenes: node hierarchy conventions, when to extract sub-scenes, reusable prefab patterns, and instance-versus-add-node decisions. Trigger on \"scene\", \"sub-scene\", \"instance\", \"prefab\", \"node hierarchy\", \"scene structure\", \"PackedScene\".",
922
+ "description": "Scene structure conventions — node hierarchy, when to extract sub-scenes, reusable prefab patterns, and instance-versus-add-node decisions.",
539
923
  "clients": "all",
540
924
  "recommended": true,
541
925
  "status": "stable",
542
- "path": "library/skills/scene-composition/"
926
+ "path": "library/skills/scene-composition/",
927
+ "domains": [
928
+ "scenes",
929
+ "project"
930
+ ]
543
931
  },
544
932
  {
545
933
  "id": "skill/scene-hierarchy-design",
546
934
  "name": "scene-hierarchy-design",
547
- "description": "Use when applying data-oriented hierarchy principles (from Sander Mertens' ECS hierarchies article) to structure Summer Engine scenes: split asset vs. live hierarchies, group by dominant access pattern, use sub-scenes for reuse, and keep logic path-agnostic via MCP scene tools.",
935
+ "description": "Structure Summer Engine scenes by access pattern — asset vs live hierarchies, wrapper nodes per operation, sub-scenes for reuse, path-agnostic logic.",
548
936
  "clients": "all",
549
937
  "recommended": false,
550
938
  "status": "preview",
551
- "path": "library/skills/scene-hierarchy-design/"
939
+ "path": "library/skills/scene-hierarchy-design/",
940
+ "domains": [
941
+ "scenes",
942
+ "project",
943
+ "agent-workflow"
944
+ ]
552
945
  },
553
946
  {
554
947
  "id": "skill/scene-scripting",
555
948
  "name": "scene-scripting",
556
- "description": "Use when building or modifying a scene takes more than a couple of node/property calls — scattering instances, procedural meshes, booleans/lathe/sweep geometry, terrain, GridMap fills, lighting rigs, keyframe animation, shader FX, 2D levels (tilemaps, sprites, bodies, cameras, parallax), HUDs and Control trees, persisted signal wiring, attached scripts, prefabs, input actions/autoloads/main scene, or anything with computed placement. Runs one GDScript inside the live editor via summer_run_script instead of long CRUD chains, verifies with summer_snapshot_diff + summer_screenshot, and checks API names with summer_api_docs instead of guessing.",
949
+ "description": "One GDScript in the live editor (summer_run_script) builds scenes, 2D levels, HUDs and gameplay wiring instead of CRUD chains; verify with diff + screenshot.",
557
950
  "clients": "all",
558
951
  "recommended": true,
559
952
  "status": "preview",
560
- "path": "library/skills/scene-scripting/"
953
+ "path": "library/skills/scene-scripting/",
954
+ "domains": [
955
+ "scenes",
956
+ "scripting",
957
+ "2d",
958
+ "ui",
959
+ "agent-workflow"
960
+ ]
561
961
  },
562
962
  {
563
963
  "id": "skill/scene-to-level",
564
964
  "name": "scene-to-level",
565
- "description": "Use when the user wants to go from a scene reference image or concept art to a playable Summer Engine scene populated with the right assets and terrain. Orchestrates concept, asset pack, terrain, composition, and scene assembly. Trigger on \"build this scene\", \"make this playable\", \"I want a level that looks like this\", \"from a screenshot to a game\", \"implement this concept\".",
965
+ "description": "Go from a scene reference image or concept art to a playable scene — orchestrates concept, asset pack, terrain, composition, and scene assembly.",
566
966
  "clients": "all",
567
967
  "recommended": false,
568
968
  "status": "stable",
569
- "path": "library/skills/scene-to-level/"
570
- },
571
- {
572
- "id": "skill/setup-multiplayer",
573
- "name": "setup-multiplayer",
574
- "description": "Use when the user wants to add multiplayer to an existing Summer game: co-op LAN, co-op online, competitive PvP, or a lobby. Start with Summer Engine's high-level MultiplayerAPI plus MultiplayerSpawner and MultiplayerSynchronizer; use custom networking only with a justified reason. Walks peer authority, RPC patterns, replication, and irreversible architecture decisions. It does not claim that managed matchmaking or hosting is live. Trigger on \"multiplayer\", \"co-op\", \"PvP\", \"online\", \"netcode\", \"rollback\", \"MultiplayerAPI\", \"host migration\", \"matchmaking\".",
575
- "clients": "all",
576
- "recommended": true,
577
- "status": "stable",
578
- "path": "library/skills/setup-multiplayer/"
969
+ "path": "library/skills/scene-to-level/",
970
+ "domains": [
971
+ "level-design",
972
+ "game-design"
973
+ ]
579
974
  },
580
975
  {
581
976
  "id": "skill/skill-create",
582
977
  "name": "skill-create",
583
- "description": "Use when a contributor wants to add a new skill to the Summer library. Bootstraps the canonical folder (library/skills/<slug>/ with resource.yaml and SKILL.md), frontmatter, and stub sections. Trigger on \"create skill\", \"add skill\", \"new skill\", \"skill-create\".",
978
+ "description": "Bootstrap a new Summer library skill (library/skills/<slug>/ with resource.yaml and SKILL.md), frontmatter, and stub sections.",
584
979
  "clients": "all",
585
980
  "recommended": false,
586
981
  "status": "stable",
587
- "path": "library/skills/skill-create/"
982
+ "path": "library/skills/skill-create/",
983
+ "domains": [
984
+ "agent-workflow",
985
+ "meta"
986
+ ]
588
987
  },
589
988
  {
590
989
  "id": "skill/skill-improve",
591
990
  "name": "skill-improve",
592
- "description": "Use when a contributor wants to upgrade a Summer skill that is underperforming or to fix a regression — runs the skill against a behavioral spec with and without proposed changes via parallel-eval harness and ships the version that wins. Trigger on \"improve skill\", \"iterate on skill\", \"make this skill better\".",
991
+ "description": "Upgrade an underperforming Summer skill — run it against a behavioral spec with and without changes via a parallel-eval harness; ship the winner.",
593
992
  "clients": "all",
594
993
  "recommended": false,
595
994
  "status": "stable",
596
- "path": "library/skills/skill-improve/"
995
+ "path": "library/skills/skill-improve/",
996
+ "domains": [
997
+ "agent-workflow",
998
+ "meta"
999
+ ]
597
1000
  },
598
1001
  {
599
1002
  "id": "skill/skill-test",
600
1003
  "name": "skill-test",
601
- "description": "Use when a contributor wants to lint a Summer skill before commit, audit the whole library, or check a behavioral spec assertion — validates against static structural rules and per-skill behavioral specs. Trigger on \"skill test\", \"lint skill\", \"validate skill\".",
1004
+ "description": "Lint a Summer skill before commit, audit the whole library, or check a behavioral spec assertion — static structural rules plus behavioral specs.",
602
1005
  "clients": "all",
603
1006
  "recommended": false,
604
1007
  "status": "stable",
605
- "path": "library/skills/skill-test/"
1008
+ "path": "library/skills/skill-test/",
1009
+ "domains": [
1010
+ "agent-workflow",
1011
+ "meta"
1012
+ ]
606
1013
  },
607
1014
  {
608
1015
  "id": "skill/skintokens-auto-rigging",
609
1016
  "name": "skintokens-auto-rigging",
610
- "description": "Use when auto-rigging a static GLB mesh offline with skin-tokens.cpp (LocalAI's C++/GGML port of VAST-AI SkinTokens/TokenRig) in SummerEngine's art pipeline: generate a skeleton and skin weights on CPU/Vulkan, then import the rigged GLB into Godot 4.",
1017
+ "description": "Offline auto-rigging with skin-tokens.cpp (GGML SkinTokens/TokenRig port) — skeleton and skin weights from a static GLB mesh on CPU/Vulkan, into Godot 4.",
611
1018
  "clients": "all",
612
1019
  "recommended": false,
613
1020
  "status": "preview",
614
- "path": "library/skills/skintokens-auto-rigging/"
1021
+ "path": "library/skills/skintokens-auto-rigging/",
1022
+ "domains": [
1023
+ "assets",
1024
+ "pipeline",
1025
+ "3d",
1026
+ "animation"
1027
+ ]
615
1028
  },
616
1029
  {
617
1030
  "id": "skill/skybox-panorama",
618
1031
  "name": "skybox-panorama",
619
- "description": "Use when generating a 360° panoramic sky image for use as a Sky resource (PanoramaSkyMaterial) in a 3D scene. Equirectangular projection, 2:1 aspect. Wires into WorldEnvironment.sky. Trigger on \"skybox\", \"sky panorama\", \"360 background\", \"environment sky\", \"HDRI sky\", \"panoramic background\", \"panorama sky\".",
1032
+ "description": "Generate a 360-degree equirectangular sky panorama and wire it as a PanoramaSkyMaterial Sky resource on WorldEnvironment in a 3D scene.",
620
1033
  "clients": "all",
621
1034
  "recommended": false,
622
1035
  "status": "stable",
623
- "path": "library/skills/skybox-panorama/"
1036
+ "path": "library/skills/skybox-panorama/",
1037
+ "domains": [
1038
+ "2d",
1039
+ "assets"
1040
+ ]
624
1041
  },
625
1042
  {
626
1043
  "id": "skill/sound-effect",
627
1044
  "name": "sound-effect",
628
- "description": "Use when generating short SFX one-shots — footsteps, weapon swings, UI clicks, hit impacts, environmental cues. Wires the resulting clip as an AudioStreamPlayer / 2D / 3D and auto-frees on finished. Trigger on \"make a sword swing sound\", \"generate a UI click\", \"I need a footstep\", \"add a hit sound\", \"spawn an SFX\".",
1045
+ "description": "Generate short SFX one-shots — footsteps, weapon swings, UI clicks, hit impacts — wired as AudioStreamPlayer/2D/3D that auto-frees on finished.",
629
1046
  "clients": "all",
630
1047
  "recommended": true,
631
1048
  "status": "stable",
632
- "path": "library/skills/sound-effect/"
1049
+ "path": "library/skills/sound-effect/",
1050
+ "domains": [
1051
+ "audio",
1052
+ "assets"
1053
+ ]
633
1054
  },
634
1055
  {
635
1056
  "id": "skill/spatial-placement",
636
1057
  "name": "spatial-placement",
637
- "description": "Use when positioning or verifying 3D objects with surrounding-scene evidence — floor and shelf support, wall gaps, collider or mesh overlap, directional clearance, alcoves, rotated props, and post-placement checks. Trigger on \"place\", \"position\", \"align\", \"sit on\", \"against the wall\", \"inside\", \"overlap\", \"clearance\", \"grounded\", \"flush\", \"spatial\", \"Starcast\".",
1058
+ "description": "Place 3D objects and modular kit pieces from measured geometry — inspect, place, starcast, measure, correct; floor, wall, facade, pipe and alcove recipes.",
638
1059
  "clients": "all",
639
1060
  "recommended": true,
640
1061
  "status": "preview",
641
- "path": "library/skills/spatial-placement/"
1062
+ "path": "library/skills/spatial-placement/",
1063
+ "domains": [
1064
+ "scenes",
1065
+ "3d",
1066
+ "world-building",
1067
+ "level-design",
1068
+ "verification"
1069
+ ]
642
1070
  },
643
1071
  {
644
1072
  "id": "skill/sprite-sheet",
645
1073
  "name": "sprite-sheet",
646
- "description": "Use when generating animated 2D character sprites laid out as a sprite sheet (grid of frames) — walk cycle, attack frames, idle bob, death sequence. Wires into AnimatedSprite2D / SpriteFrames. Trigger on \"sprite sheet\", \"walk cycle\", \"attack frames\", \"animated sprite\", \"frame-by-frame animation\", \"2D character animation\".",
1074
+ "description": "Generate animated 2D character sprites laid out as a sprite sheet — walk cycle, attack, idle, death — wired into AnimatedSprite2D / SpriteFrames.",
1075
+ "clients": "all",
1076
+ "recommended": false,
1077
+ "status": "stable",
1078
+ "path": "library/skills/sprite-sheet/",
1079
+ "domains": [
1080
+ "2d",
1081
+ "assets"
1082
+ ]
1083
+ },
1084
+ {
1085
+ "id": "skill/summer-analytics",
1086
+ "name": "summer-analytics",
1087
+ "description": "Send game events to Summer analytics from the authority or client: fire-and-forget, never blocking gameplay.",
1088
+ "clients": "all",
1089
+ "recommended": false,
1090
+ "status": "preview",
1091
+ "path": "library/skills/summer-analytics/",
1092
+ "domains": [
1093
+ "multiplayer",
1094
+ "scripting"
1095
+ ]
1096
+ },
1097
+ {
1098
+ "id": "skill/summer-friends",
1099
+ "name": "summer-friends",
1100
+ "description": "Summer friends in a game: a consented friends list, profile and chat screens, direct messages. Hosted only.",
1101
+ "clients": "all",
1102
+ "recommended": false,
1103
+ "status": "preview",
1104
+ "path": "library/skills/summer-friends/",
1105
+ "domains": [
1106
+ "multiplayer",
1107
+ "ui"
1108
+ ]
1109
+ },
1110
+ {
1111
+ "id": "skill/summer-leaderboards",
1112
+ "name": "summer-leaderboards",
1113
+ "description": "Leaderboards in a Summer game: queue ratings from matches, and Game rankings your authority scores.",
1114
+ "clients": "all",
1115
+ "recommended": false,
1116
+ "status": "preview",
1117
+ "path": "library/skills/summer-leaderboards/",
1118
+ "domains": [
1119
+ "multiplayer",
1120
+ "ui"
1121
+ ]
1122
+ },
1123
+ {
1124
+ "id": "skill/summer-match-results",
1125
+ "name": "summer-match-results",
1126
+ "description": "End a Summer match: report each player's win, loss or draw, show results on clients, then close the World.",
647
1127
  "clients": "all",
648
1128
  "recommended": false,
649
1129
  "status": "stable",
650
- "path": "library/skills/sprite-sheet/"
1130
+ "path": "library/skills/summer-match-results/",
1131
+ "domains": [
1132
+ "multiplayer",
1133
+ "gameplay"
1134
+ ]
1135
+ },
1136
+ {
1137
+ "id": "skill/summer-matchmaking",
1138
+ "name": "summer-matchmaking",
1139
+ "description": "Get players into matches with Summer matchmaking: queues, teams, accept prompts, join progress and failures.",
1140
+ "clients": "all",
1141
+ "recommended": false,
1142
+ "status": "preview",
1143
+ "path": "library/skills/summer-matchmaking/",
1144
+ "domains": [
1145
+ "multiplayer",
1146
+ "ux"
1147
+ ]
1148
+ },
1149
+ {
1150
+ "id": "skill/summer-parties",
1151
+ "name": "summer-parties",
1152
+ "description": "Let a Summer party play together: the leader presses Play, members follow into the same match. Hosted only.",
1153
+ "clients": "all",
1154
+ "recommended": false,
1155
+ "status": "preview",
1156
+ "path": "library/skills/summer-parties/",
1157
+ "domains": [
1158
+ "multiplayer",
1159
+ "ui"
1160
+ ]
1161
+ },
1162
+ {
1163
+ "id": "skill/summer-player-data",
1164
+ "name": "summer-player-data",
1165
+ "description": "Save a player's progress so it follows them to every match: authority load and commit, autosave, safe retries.",
1166
+ "clients": "all",
1167
+ "recommended": false,
1168
+ "status": "stable",
1169
+ "path": "library/skills/summer-player-data/",
1170
+ "domains": [
1171
+ "multiplayer",
1172
+ "scripting"
1173
+ ]
1174
+ },
1175
+ {
1176
+ "id": "skill/summer-store",
1177
+ "name": "summer-store",
1178
+ "description": "Sell Summer items for Sparks in a multiplayer game: shop, checkout, owned items, authority entitlement checks.",
1179
+ "clients": "all",
1180
+ "recommended": false,
1181
+ "status": "preview",
1182
+ "path": "library/skills/summer-store/",
1183
+ "domains": [
1184
+ "multiplayer",
1185
+ "gameplay"
1186
+ ]
1187
+ },
1188
+ {
1189
+ "id": "skill/summer-world-chat",
1190
+ "name": "summer-world-chat",
1191
+ "description": "Add match chat to a Summer game: one World channel shared by everyone in the match. Hosted only.",
1192
+ "clients": "all",
1193
+ "recommended": false,
1194
+ "status": "preview",
1195
+ "path": "library/skills/summer-world-chat/",
1196
+ "domains": [
1197
+ "multiplayer",
1198
+ "ui"
1199
+ ]
1200
+ },
1201
+ {
1202
+ "id": "skill/summer-world-saves",
1203
+ "name": "summer-world-saves",
1204
+ "description": "Keep a persistent Summer World between restarts: checkpoint saves, restore before join, the final save.",
1205
+ "clients": "all",
1206
+ "recommended": false,
1207
+ "status": "preview",
1208
+ "path": "library/skills/summer-world-saves/",
1209
+ "domains": [
1210
+ "multiplayer",
1211
+ "scripting"
1212
+ ]
1213
+ },
1214
+ {
1215
+ "id": "skill/text-to-motion",
1216
+ "name": "text-to-motion",
1217
+ "description": "Custom 2-second animation clips from text prompts on any of the user's own rigged models — humanoids, animals, creatures, cartoon plants, props.",
1218
+ "clients": "all",
1219
+ "recommended": false,
1220
+ "status": "preview",
1221
+ "path": "library/skills/text-to-motion/",
1222
+ "domains": [
1223
+ "animation",
1224
+ "generate",
1225
+ "3d"
1226
+ ]
651
1227
  },
652
1228
  {
653
1229
  "id": "skill/tileable-texture",
654
1230
  "name": "tileable-texture",
655
- "description": "Use when generating a seamless tileable texture for walls, floors, terrain, ceilings — square tile that repeats cleanly on all four edges. Wires onto PlaneMesh / CSGBox3D / MeshInstance3D as a StandardMaterial3D albedo. Trigger on \"tileable texture\", \"seamless texture\", \"wall texture\", \"floor texture\", \"ground texture\", \"terrain texture\", \"tiled material\".",
1231
+ "description": "Generate a seamless tileable texture for walls, floors, or terrain — repeats cleanly on all four edges, wired as a StandardMaterial3D albedo.",
656
1232
  "clients": "all",
657
1233
  "recommended": false,
658
1234
  "status": "stable",
659
- "path": "library/skills/tileable-texture/"
1235
+ "path": "library/skills/tileable-texture/",
1236
+ "domains": [
1237
+ "2d",
1238
+ "assets"
1239
+ ]
660
1240
  },
661
1241
  {
662
1242
  "id": "skill/trailer-shot",
663
1243
  "name": "trailer-shot",
664
- "description": "Use when generating marketing or trailer footage — slow-mo combat, dramatic establishing shots, hero beats, splash screens, pitch-deck B-roll. Optimizes for maximum visual punch in 5-10 seconds. Trigger on \"trailer\", \"marketing footage\", \"Steam capsule video\", \"splash screen\", \"hero shot\", \"pitch deck clip\", \"promo clip\", \"money shot\", \"B-roll\".",
1244
+ "description": "Generate marketing or trailer footage — slow-mo combat, establishing shots, hero beats, splash screens, pitch-deck B-roll — max punch in 5-10 seconds.",
665
1245
  "clients": "all",
666
1246
  "recommended": false,
667
1247
  "status": "stable",
668
- "path": "library/skills/trailer-shot/"
1248
+ "path": "library/skills/trailer-shot/",
1249
+ "domains": [
1250
+ "video",
1251
+ "assets"
1252
+ ]
669
1253
  },
670
1254
  {
671
1255
  "id": "skill/tune-performance",
672
1256
  "name": "tune-performance",
673
- "description": "Use when the user reports the game is slow, drops framerate, stutters, takes forever to start, or runs poorly on specific hardware. Profiles the running game via summer_get_diagnostics, identifies hotspots (rendering / physics / scripting), and proposes specific fixes with before/after metric expectations. Trigger on \"slow\", \"lag\", \"fps drop\", \"stuttering\", \"performance\", \"optimize\", \"profile\", \"framerate\".",
1257
+ "description": "Profile a slow game via summer_get_diagnostics, identify rendering/physics/scripting hotspots, propose fixes with before/after metric expectations.",
674
1258
  "clients": "all",
675
1259
  "recommended": true,
676
1260
  "status": "stable",
677
- "path": "library/skills/tune-performance/"
1261
+ "path": "library/skills/tune-performance/",
1262
+ "domains": [
1263
+ "performance",
1264
+ "debug"
1265
+ ]
678
1266
  },
679
1267
  {
680
1268
  "id": "skill/ui-basics",
681
1269
  "name": "ui-basics",
682
- "description": "Use when building Summer Engine UI: HUDs, main menus, pause menus, health bars, progress bars, dialogue boxes, or any Control-node tree. Covers anchors, containers (VBox/HBox/Margin), responsive layout, and theme versus inline styling. Trigger on \"UI\", \"HUD\", \"menu\", \"health bar\", \"Control\", \"anchors\", \"VBoxContainer\", \"main menu\", \"pause menu\".",
1270
+ "description": "Build Summer Engine UI — HUDs, menus, health bars, dialogue boxes, Control trees — anchors, containers, responsive layout, theme vs inline styling.",
683
1271
  "clients": "all",
684
1272
  "recommended": true,
685
1273
  "status": "stable",
686
- "path": "library/skills/ui-basics/"
1274
+ "path": "library/skills/ui-basics/",
1275
+ "domains": [
1276
+ "ui",
1277
+ "ux"
1278
+ ]
687
1279
  },
688
1280
  {
689
1281
  "id": "skill/ui-graphics",
690
1282
  "name": "ui-graphics",
691
- "description": "Use when generating UI elements — icons, buttons, panels, frames, HUD widgets, badges. Flat-design, transparent-background, game-UI style. Wires the result via TextureRect / NinePatchRect / AtlasTexture. Trigger on \"UI icon\", \"button graphic\", \"HUD element\", \"panel frame\", \"menu background\", \"inventory slot\", \"ability icon\", \"badge\".",
1283
+ "description": "Generate game-UI elements — icons, buttons, panels, frames, HUD widgets, badges — flat design, transparent background, wired via TextureRect/NinePatchRect.",
692
1284
  "clients": "all",
693
1285
  "recommended": false,
694
1286
  "status": "stable",
695
- "path": "library/skills/ui-graphics/"
1287
+ "path": "library/skills/ui-graphics/",
1288
+ "domains": [
1289
+ "2d",
1290
+ "assets"
1291
+ ]
696
1292
  },
697
1293
  {
698
1294
  "id": "skill/use-widget-asset",
699
1295
  "name": "use-widget-asset",
700
- "description": "Use when consuming a widget slice (panel, button, slider, progress bar, or toggle pair) from a `create-asset-sheet` pack in a Summer Engine scene. The pack's metadata.sliceMeta carries 9-slice margins, fill rects, and on/off pair links per slice. This skill explains how to wire those into NinePatchRect, TextureProgressBar, or TextureRect so the asset behaves like a real UI control instead of a static texture.",
1296
+ "description": "Wire a widget slice from a create-asset-sheet pack (panel, button, slider, bar, toggle) into NinePatchRect, TextureProgressBar, or TextureRect via sliceMeta.",
701
1297
  "clients": "all",
702
1298
  "recommended": false,
703
1299
  "status": "stable",
704
- "path": "library/skills/use-widget-asset/"
1300
+ "path": "library/skills/use-widget-asset/",
1301
+ "domains": [
1302
+ "2d",
1303
+ "assets"
1304
+ ]
705
1305
  },
706
1306
  {
707
1307
  "id": "skill/using-summer",
708
1308
  "name": "using-summer",
709
- "description": "Use when starting any conversation in a Summer Engine project — establishes how to find and use Summer skills and the summer-engine MCP, requiring Skill tool invocation before ANY response including clarifying questions.",
1309
+ "description": "Session bootstrap for Summer projects — establishes how to find and use Summer skills and the summer-engine MCP before any response.",
710
1310
  "clients": "all",
711
1311
  "recommended": false,
712
1312
  "status": "stable",
713
- "path": "library/skills/using-summer/"
1313
+ "path": "library/skills/using-summer/",
1314
+ "domains": [
1315
+ "agent-workflow",
1316
+ "meta"
1317
+ ]
714
1318
  },
715
1319
  {
716
1320
  "id": "skill/vehicle-model",
717
1321
  "name": "vehicle-model",
718
- "description": "Use when generating a hard-surface vehicle — car, motorcycle, spaceship, hover bike, boat, mech, tank, helicopter. Static mesh, optional secondary detail-texture pass, wired as Vehicle3D (player-driven) or MeshInstance3D (background). Trigger on \"make a car\", \"spaceship model\", \"generate a mech\", \"I need a vehicle\", \"hover bike\", \"tank model\", \"racing car\".",
1322
+ "description": "Generate a hard-surface vehicle — car, spaceship, mech, boat, tank — static mesh with optional detail-texture pass, wired as Vehicle3D or MeshInstance3D.",
719
1323
  "clients": "all",
720
1324
  "recommended": false,
721
1325
  "status": "stable",
722
- "path": "library/skills/vehicle-model/"
1326
+ "path": "library/skills/vehicle-model/",
1327
+ "domains": [
1328
+ "3d",
1329
+ "assets"
1330
+ ]
723
1331
  },
724
1332
  {
725
1333
  "id": "skill/verification-before-completion",
726
1334
  "name": "verification-before-completion",
727
- "description": "Use when about to claim work is complete, fixed, or passing, before committing or creating PRs - requires running verification commands and confirming output before making any success claims; evidence before assertions always",
1335
+ "description": "Run verification commands and confirm output before claiming work complete, fixed, or passing — evidence before assertions, always.",
728
1336
  "clients": "all",
729
1337
  "recommended": true,
730
1338
  "status": "stable",
731
- "path": "library/skills/verification-before-completion/"
1339
+ "path": "library/skills/verification-before-completion/",
1340
+ "domains": [
1341
+ "agent-workflow",
1342
+ "verification"
1343
+ ]
732
1344
  },
733
1345
  {
734
1346
  "id": "skill/verifying-scenes",
735
1347
  "name": "verifying-scenes",
736
- "description": "Use when verifying that scene work actually landed — after any mutation batch, asset import, lighting change, or during a playtest — and before claiming any visual or structural result. Runs the before/after discipline (summer_world_snapshot → mutate → summer_snapshot_diff + summer_screenshot), reads live runtime state with summer_get_runtime_tree / summer_inspect_runtime_node instead of stopping the game, and enforces honest-claim rules.",
1348
+ "description": "Prove scene work landed (snapshot, diff, screenshots, runtime reads), audit 3D scenes for holes and misplacement, review them with shot sheets and zooms.",
737
1349
  "clients": "all",
738
1350
  "recommended": true,
739
1351
  "status": "preview",
740
- "path": "library/skills/verifying-scenes/"
1352
+ "path": "library/skills/verifying-scenes/",
1353
+ "domains": [
1354
+ "scenes",
1355
+ "verification",
1356
+ "agent-workflow"
1357
+ ]
741
1358
  },
742
1359
  {
743
1360
  "id": "skill/vfx-dissolve",
744
1361
  "name": "vfx-dissolve",
745
- "description": "Use when authoring a dissolve effect — an object's mesh disintegrating with a glowing burning edge, driven by a noise threshold ShaderMaterial overriding the target's existing material. Trigger on \"dissolve\", \"disintegrate\", \"burn away\", \"Thanos snap\", \"vanish into ash\", \"enemy fades out\", \"object burns up\".",
1362
+ "description": "Dissolve effect — a mesh disintegrating with a glowing burning edge, driven by a noise-threshold ShaderMaterial overriding the target's material.",
746
1363
  "clients": "all",
747
1364
  "recommended": false,
748
1365
  "status": "stable",
749
- "path": "library/skills/vfx-dissolve/"
1366
+ "path": "library/skills/vfx-dissolve/",
1367
+ "domains": [
1368
+ "vfx",
1369
+ "rendering"
1370
+ ]
750
1371
  },
751
1372
  {
752
1373
  "id": "skill/vfx-fire",
753
1374
  "name": "vfx-fire",
754
- "description": "Use when authoring a fire visual effect — animated flames built with a particle shader, GPUParticles3D, and a noise-based color ramp. Trigger on \"torch\", \"campfire\", \"bonfire\", \"flame\", \"fire effect\", \"burning\", \"make this thing on fire\", \"candle\".",
1375
+ "description": "Fire effect — animated flames built with a particle shader, GPUParticles3D, and a noise-based color ramp — torches, campfires, candles.",
755
1376
  "clients": "all",
756
1377
  "recommended": true,
757
1378
  "status": "stable",
758
- "path": "library/skills/vfx-fire/"
1379
+ "path": "library/skills/vfx-fire/",
1380
+ "domains": [
1381
+ "vfx",
1382
+ "rendering"
1383
+ ]
759
1384
  },
760
1385
  {
761
1386
  "id": "skill/vfx-hit-spark",
762
1387
  "name": "vfx-hit-spark",
763
- "description": "Use when authoring a hit-spark visual effect — a one-shot burst of additive billboard particles oriented to a surface normal, fired on impact. Trigger on \"hit spark\", \"impact spark\", \"bullet hit\", \"sword clash\", \"metal-on-metal\", \"ricochet\", \"impact effect\", \"spawn sparks at hit point\".",
1388
+ "description": "Hit-spark effect — a one-shot burst of additive billboard particles oriented to a surface normal, fired on impact.",
764
1389
  "clients": "all",
765
1390
  "recommended": false,
766
1391
  "status": "stable",
767
- "path": "library/skills/vfx-hit-spark/"
1392
+ "path": "library/skills/vfx-hit-spark/",
1393
+ "domains": [
1394
+ "vfx",
1395
+ "rendering"
1396
+ ]
768
1397
  },
769
1398
  {
770
1399
  "id": "skill/vfx-lightning",
771
1400
  "name": "vfx-lightning",
772
- "description": "Use when authoring a lightning bolt visual effect — procedural jagged path drawn via ImmediateMesh, glow shader, sparks at endpoints, screen shake. Trigger on \"lightning bolt\", \"chain lightning\", \"electric attack\", \"tesla coil\", \"shock spell\", \"thunderbolt\", \"energy beam\".",
1401
+ "description": "Lightning bolt effect — procedural jagged path drawn via ImmediateMesh, glow shader, sparks at endpoints, screen shake.",
773
1402
  "clients": "all",
774
1403
  "recommended": false,
775
1404
  "status": "stable",
776
- "path": "library/skills/vfx-lightning/"
1405
+ "path": "library/skills/vfx-lightning/",
1406
+ "domains": [
1407
+ "vfx",
1408
+ "rendering"
1409
+ ]
777
1410
  },
778
1411
  {
779
1412
  "id": "skill/vfx-magic-glow",
780
1413
  "name": "vfx-magic-glow",
781
- "description": "Use when authoring a magic-glow visual effect — a pulsing OmniLight3D plus drifting additive motes plus optional emission shader on the source mesh. Trigger on \"magic glow\", \"enchanted item\", \"soul gem\", \"pulsing aura\", \"rune glow\", \"magical orb\", \"summon circle glow\", \"fairy\", \"wisp\".",
1414
+ "description": "Magic-glow effect — a pulsing OmniLight3D plus drifting additive motes plus optional emission shader on the source mesh.",
782
1415
  "clients": "all",
783
1416
  "recommended": false,
784
1417
  "status": "stable",
785
- "path": "library/skills/vfx-magic-glow/"
1418
+ "path": "library/skills/vfx-magic-glow/",
1419
+ "domains": [
1420
+ "vfx",
1421
+ "rendering"
1422
+ ]
786
1423
  },
787
1424
  {
788
1425
  "id": "skill/vfx-muzzle-flash",
789
1426
  "name": "vfx-muzzle-flash",
790
- "description": "Use when authoring a muzzle-flash visual effect — a one-shot ~80 ms burst at a gun barrel built with a particle one-shot OR a flashing quad with a star-burst shader. Trigger on \"muzzle flash\", \"gun fire\", \"weapon flash\", \"barrel flash\", \"shoot a gun\", \"spell-cast burst at hand\".",
1427
+ "description": "Muzzle-flash effect — a one-shot ~80 ms burst at a gun barrel built with a particle one-shot or a flashing quad with a star-burst shader.",
791
1428
  "clients": "all",
792
1429
  "recommended": true,
793
1430
  "status": "stable",
794
- "path": "library/skills/vfx-muzzle-flash/"
1431
+ "path": "library/skills/vfx-muzzle-flash/",
1432
+ "domains": [
1433
+ "vfx",
1434
+ "rendering"
1435
+ ]
795
1436
  },
796
1437
  {
797
1438
  "id": "skill/vfx-smoke",
798
1439
  "name": "vfx-smoke",
799
- "description": "Use when authoring a smoke visual effect — a slow-rising column or puff of soft particles built with a noise + density falloff shader on a quad mesh, GPUParticles3D. Trigger on \"smoke\", \"smoke trail\", \"puff\", \"chimney smoke\", \"smoke from a fire\", \"steam\", \"fog cloud\", \"explosion smoke\".",
1440
+ "description": "Smoke effect — a slow-rising column or puff of soft particles built with a noise + density falloff shader on a quad mesh, GPUParticles3D.",
800
1441
  "clients": "all",
801
1442
  "recommended": false,
802
1443
  "status": "stable",
803
- "path": "library/skills/vfx-smoke/"
1444
+ "path": "library/skills/vfx-smoke/",
1445
+ "domains": [
1446
+ "vfx",
1447
+ "rendering"
1448
+ ]
804
1449
  },
805
1450
  {
806
1451
  "id": "skill/vfx-water-ripple",
807
1452
  "name": "vfx-water-ripple",
808
- "description": "Use when authoring a water-ripple visual effect — animated normal-distortion ripples on a water plane (or as a Decal) triggered by impacts. Trigger on \"water ripple\", \"ripples on water\", \"raindrop ripple\", \"splash ripple\", \"rain on water\", \"footstep in puddle\", \"fish jumps\".",
1453
+ "description": "Water-ripple effect — animated normal-distortion ripples on a water plane (or as a Decal) triggered by impacts.",
809
1454
  "clients": "all",
810
1455
  "recommended": false,
811
1456
  "status": "stable",
812
- "path": "library/skills/vfx-water-ripple/"
1457
+ "path": "library/skills/vfx-water-ripple/",
1458
+ "domains": [
1459
+ "vfx",
1460
+ "rendering"
1461
+ ]
813
1462
  },
814
1463
  {
815
1464
  "id": "skill/voice-line",
816
1465
  "name": "voice-line",
817
- "description": "Use when generating TTS voice lines — NPC barks, narrator, dialogue. Covers where voice ids come from, a character-to-voice decision tree, stability/style/similarity guidance, and the multi-line dialogue case via text_to_dialogue. Trigger on \"make a voice line\", \"narrator\", \"NPC says\", \"voice for the merchant\", \"TTS line\", \"dialogue\".",
1466
+ "description": "Generate TTS voice lines — NPC barks, narrator, dialogue — with voice-id sourcing, a character-to-voice decision tree, and multi-line dialogue support.",
818
1467
  "clients": "all",
819
1468
  "recommended": true,
820
1469
  "status": "stable",
821
- "path": "library/skills/voice-line/"
1470
+ "path": "library/skills/voice-line/",
1471
+ "domains": [
1472
+ "audio",
1473
+ "assets"
1474
+ ]
1475
+ },
1476
+ {
1477
+ "id": "skill/web-and-touch-input",
1478
+ "name": "web-and-touch-input",
1479
+ "description": "Input for the browser and phones: the first-click rule for sound and mouse capture, focus, and touch buttons or a virtual stick on the same actions.",
1480
+ "clients": "all",
1481
+ "recommended": true,
1482
+ "status": "preview",
1483
+ "path": "library/skills/web-and-touch-input/",
1484
+ "domains": [
1485
+ "gameplay",
1486
+ "ui"
1487
+ ]
1488
+ },
1489
+ {
1490
+ "id": "skill/web-compatibility-look",
1491
+ "name": "web-compatibility-look",
1492
+ "description": "Make a web or browser game look high-end in the Compatibility renderer (WebGL 2): what works, what to avoid, 2D and 3D recipes, web performance.",
1493
+ "clients": "all",
1494
+ "recommended": true,
1495
+ "status": "preview",
1496
+ "path": "library/skills/web-compatibility-look/",
1497
+ "domains": [
1498
+ "rendering",
1499
+ "2d",
1500
+ "3d"
1501
+ ]
822
1502
  },
823
1503
  {
824
1504
  "id": "skill/world-building-3d",
825
1505
  "name": "world-building-3d",
826
- "description": "Use when composing, placing, grounding, spacing, or validating 3D objects in Summer Engine scenes. Trigger on \"world building\", \"place props\", \"snap to floor\", \"align objects\", \"distribute objects\", \"navigation reachability\", or requests to make a 3D scene look deliberately arranged rather than roughly positioned.",
1506
+ "description": "Compose, ground, space, and validate 3D scenes with Summer's four bounded spatial tools — exact paths, one geometric decision at a time, verified.",
827
1507
  "clients": "all",
828
1508
  "recommended": true,
829
1509
  "status": "preview",
830
- "path": "library/skills/world-building-3d/"
1510
+ "path": "library/skills/world-building-3d/",
1511
+ "domains": [
1512
+ "scenes",
1513
+ "3d",
1514
+ "world-building",
1515
+ "level-design",
1516
+ "verification"
1517
+ ]
831
1518
  },
832
1519
  {
833
1520
  "id": "skill/writing-plans",
834
1521
  "name": "writing-plans",
835
- "description": "Use when you have a spec or requirements for a multi-step task, before touching code",
1522
+ "description": "Turn a spec or requirements for a multi-step task into a written implementation plan before touching code.",
836
1523
  "clients": "all",
837
1524
  "recommended": false,
838
1525
  "status": "stable",
839
- "path": "library/skills/writing-plans/"
1526
+ "path": "library/skills/writing-plans/",
1527
+ "domains": [
1528
+ "agent-workflow",
1529
+ "meta"
1530
+ ]
840
1531
  },
841
1532
  {
842
1533
  "id": "skill/writing-skills",
843
1534
  "name": "writing-skills",
844
- "description": "Use when creating new skills, editing existing skills, or verifying skills work before deployment",
1535
+ "description": "Create, edit, and verify agent skills — format, structure, testing with subagents, and best practices.",
845
1536
  "clients": "all",
846
1537
  "recommended": false,
847
1538
  "status": "stable",
848
- "path": "library/skills/writing-skills/"
1539
+ "path": "library/skills/writing-skills/",
1540
+ "domains": [
1541
+ "agent-workflow",
1542
+ "meta"
1543
+ ]
849
1544
  }
850
1545
  ]
851
1546
  }