summer-engine 2.2.0 → 2.5.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 (176) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +20 -5
  3. package/.codex-plugin/plugin.json +15 -5
  4. package/.cursor-plugin/plugin.json +15 -5
  5. package/.factory-plugin/plugin.json +2 -2
  6. package/.opencode/INSTALL.md +1 -1
  7. package/CHANGELOG.md +27 -6
  8. package/CLAUDE.md +2 -2
  9. package/GEMINI.md +2 -3
  10. package/README.md +82 -58
  11. package/_persona/summer/SKILL.md +5 -6
  12. package/commands/gameskill.md +103 -0
  13. package/dist/bin/summer.js +12 -4
  14. package/dist/commands/create.js +2 -0
  15. package/dist/commands/doctor.js +71 -1
  16. package/dist/commands/install.d.ts +17 -0
  17. package/dist/commands/install.js +63 -4
  18. package/dist/commands/memory.d.ts +14 -0
  19. package/dist/commands/memory.js +196 -0
  20. package/dist/commands/setup.js +12 -2
  21. package/dist/commands/skills.js +205 -8
  22. package/dist/commands/status.js +3 -0
  23. package/dist/lib/agent-config.d.ts +2 -2
  24. package/dist/lib/agent-config.js +298 -5
  25. package/dist/lib/api-client.d.ts +13 -0
  26. package/dist/lib/api-client.js +63 -26
  27. package/dist/lib/async-op-lifecycle.d.ts +60 -0
  28. package/dist/lib/async-op-lifecycle.js +83 -0
  29. package/dist/lib/project-memory.d.ts +33 -0
  30. package/dist/lib/project-memory.js +220 -0
  31. package/dist/lib/skills-registry.d.ts +134 -61
  32. package/dist/lib/skills-registry.js +106 -4
  33. package/dist/lib/version-check.d.ts +106 -0
  34. package/dist/lib/version-check.js +338 -0
  35. package/dist/mcp/server.d.ts +2 -0
  36. package/dist/mcp/server.js +81 -0
  37. package/dist/mcp/tools/debug-tools.js +32 -2
  38. package/dist/mcp/tools/project-tools.js +18 -6
  39. package/dist/mcp/tools/with-engine.d.ts +14 -0
  40. package/dist/mcp/tools/with-engine.js +52 -7
  41. package/gemini-extension.json +2 -2
  42. package/hooks/pre-commit-doctor.sh +0 -0
  43. package/hooks/run-hook.cmd +0 -0
  44. package/hooks/session-start.sh +0 -0
  45. package/package.json +6 -4
  46. package/skills/2d-assets/character-portrait/SKILL.md +1 -1
  47. package/skills/2d-assets/concept-art/SKILL.md +1 -1
  48. package/skills/2d-assets/create-asset-sheet/SKILL.md +163 -0
  49. package/skills/2d-assets/instantiate-asset-pack/SKILL.md +245 -0
  50. package/skills/2d-assets/pixel-art/SKILL.md +1 -1
  51. package/skills/2d-assets/skybox-panorama/SKILL.md +1 -1
  52. package/skills/2d-assets/sprite-sheet/SKILL.md +1 -1
  53. package/skills/2d-assets/tileable-texture/SKILL.md +1 -1
  54. package/skills/2d-assets/ui-graphics/SKILL.md +1 -1
  55. package/skills/2d-assets/use-widget-asset/SKILL.md +217 -0
  56. package/skills/3d-assets/character-model/SKILL.md +1 -1
  57. package/skills/3d-assets/organic-model/SKILL.md +1 -1
  58. package/skills/3d-assets/prop-model/SKILL.md +1 -1
  59. package/skills/3d-assets/vehicle-model/SKILL.md +1 -1
  60. package/skills/README.md +37 -30
  61. package/skills/ai-and-npcs/design-npc/SKILL.md +6 -6
  62. package/skills/animation/animation-tree/SKILL.md +2 -2
  63. package/skills/animation/facial-and-lipsync/SKILL.md +1 -1
  64. package/skills/animation/generate-motion/SKILL.md +1 -1
  65. package/skills/animation/procedural-animation/SKILL.md +2 -2
  66. package/skills/audio/adaptive-music/SKILL.md +1 -1
  67. package/skills/audio/audio-direction/SKILL.md +5 -5
  68. package/skills/audio/sound-effect/SKILL.md +2 -2
  69. package/skills/audio/voice-line/SKILL.md +25 -3
  70. package/skills/character-controllers/fps-controller/SKILL.md +5 -5
  71. package/skills/debugging/debug/SKILL.md +39 -1
  72. package/skills/deployment/export-and-ship/SKILL.md +4 -4
  73. package/skills/gameplay-mechanics/auto-fire-targeting/SKILL.md +170 -0
  74. package/skills/gameplay-mechanics/design-mechanic/SKILL.md +8 -8
  75. package/skills/level-design/design-level/SKILL.md +5 -5
  76. package/skills/level-design/scene-to-level/SKILL.md +125 -0
  77. package/skills/multiplayer-and-networking/host-authoritative-state/SKILL.md +4 -4
  78. package/skills/multiplayer-and-networking/peer-to-peer-multiplayer/SKILL.md +4 -4
  79. package/skills/multiplayer-and-networking/setup-multiplayer/SKILL.md +7 -7
  80. package/skills/performance/tune-performance/SKILL.md +5 -5
  81. package/skills/rendering-and-lighting/3d-lighting/SKILL.md +1 -1
  82. package/skills/rendering-and-lighting/art-direction/SKILL.md +5 -5
  83. package/skills/scene-and-project/brainstorm-game/SKILL.md +4 -4
  84. package/skills/scene-and-project/play/SKILL.md +1 -1
  85. package/skills/scene-and-project/scene-composition/SKILL.md +30 -1
  86. package/skills/scripting-patterns/gdscript-patterns/SKILL.md +53 -0
  87. package/skills/ui-and-ux/ui-basics/SKILL.md +1 -1
  88. package/skills/video/animated-loop/SKILL.md +1 -1
  89. package/skills/video/cinematic-cutscene/SKILL.md +1 -1
  90. package/skills/video/trailer-shot/SKILL.md +1 -1
  91. package/skills/visual-effects/game-feel/SKILL.md +6 -6
  92. package/skills/workflow/brainstorming/SKILL.md +164 -0
  93. package/skills/workflow/brainstorming/scripts/frame-template.html +214 -0
  94. package/skills/workflow/brainstorming/scripts/helper.js +88 -0
  95. package/skills/workflow/brainstorming/scripts/server.cjs +354 -0
  96. package/skills/workflow/brainstorming/scripts/start-server.sh +148 -0
  97. package/skills/workflow/brainstorming/scripts/stop-server.sh +56 -0
  98. package/skills/workflow/brainstorming/spec-document-reviewer-prompt.md +49 -0
  99. package/skills/workflow/brainstorming/visual-companion.md +287 -0
  100. package/skills/workflow/debugging-game-feel/SKILL.md +174 -0
  101. package/skills/workflow/diagnosing-perf-regressions/SKILL.md +190 -0
  102. package/skills/workflow/dispatching-parallel-agents/SKILL.md +182 -0
  103. package/skills/workflow/gameskill/SKILL.md +111 -0
  104. package/skills/workflow/investigating-bugs/CREATION-LOG.md +119 -0
  105. package/skills/workflow/investigating-bugs/SKILL.md +296 -0
  106. package/skills/workflow/investigating-bugs/condition-based-waiting-example.ts +158 -0
  107. package/skills/workflow/investigating-bugs/condition-based-waiting.md +115 -0
  108. package/skills/workflow/investigating-bugs/defense-in-depth.md +122 -0
  109. package/skills/workflow/investigating-bugs/find-polluter.sh +63 -0
  110. package/skills/workflow/investigating-bugs/root-cause-tracing.md +169 -0
  111. package/skills/workflow/investigating-bugs/test-academic.md +14 -0
  112. package/skills/workflow/investigating-bugs/test-pressure-1.md +58 -0
  113. package/skills/workflow/investigating-bugs/test-pressure-2.md +68 -0
  114. package/skills/workflow/investigating-bugs/test-pressure-3.md +69 -0
  115. package/skills/workflow/playtesting-a-feature/SKILL.md +173 -0
  116. package/skills/{_meta → workflow}/skill-create/SKILL.md +32 -22
  117. package/skills/{_meta → workflow}/skill-improve/SKILL.md +9 -10
  118. package/skills/{_meta → workflow}/skill-test/SKILL.md +12 -12
  119. package/skills/{_meta → workflow}/using-summer/SKILL.md +5 -2
  120. package/skills/workflow/verification-before-completion/SKILL.md +139 -0
  121. package/skills/workflow/writing-plans/SKILL.md +152 -0
  122. package/skills/workflow/writing-plans/plan-document-reviewer-prompt.md +49 -0
  123. package/skills/workflow/writing-skills/SKILL.md +655 -0
  124. package/skills/workflow/writing-skills/anthropic-best-practices.md +1150 -0
  125. package/skills/workflow/writing-skills/examples/CLAUDE_MD_TESTING.md +189 -0
  126. package/skills/workflow/writing-skills/graphviz-conventions.dot +172 -0
  127. package/skills/workflow/writing-skills/persuasion-principles.md +187 -0
  128. package/skills/workflow/writing-skills/render-graphs.js +168 -0
  129. package/skills/workflow/writing-skills/testing-skills-with-subagents.md +384 -0
  130. package/dist/commands/assets.d.ts +0 -2
  131. package/dist/commands/assets.js +0 -189
  132. package/dist/commands/debug.d.ts +0 -2
  133. package/dist/commands/debug.js +0 -127
  134. package/dist/commands/doctor.test.d.ts +0 -1
  135. package/dist/commands/doctor.test.js +0 -29
  136. package/dist/commands/project.d.ts +0 -2
  137. package/dist/commands/project.js +0 -170
  138. package/dist/commands/scene.d.ts +0 -2
  139. package/dist/commands/scene.js +0 -290
  140. package/dist/lib/agent-config.test.d.ts +0 -1
  141. package/dist/lib/agent-config.test.js +0 -80
  142. package/dist/lib/format.test.d.ts +0 -1
  143. package/dist/lib/format.test.js +0 -36
  144. package/dist/lib/plugin-manifests.test.d.ts +0 -1
  145. package/dist/lib/plugin-manifests.test.js +0 -134
  146. package/dist/lib/with-engine.d.ts +0 -14
  147. package/dist/lib/with-engine.js +0 -109
  148. package/skills/_shared/collaborative-protocol.md +0 -50
  149. package/skills/_shared/gd-style.md +0 -121
  150. package/skills/_shared/godot-version.md +0 -32
  151. package/skills/_shared/mcp-tools-reference.md +0 -133
  152. package/skills/_shared/summer-folder.md +0 -44
  153. package/skills/_shared/template-registry.md +0 -40
  154. package/skills/_tests/runner.md +0 -90
  155. package/skills/_tests/specs/3d-lighting.md +0 -19
  156. package/skills/_tests/specs/art-direction.md +0 -115
  157. package/skills/_tests/specs/asset-strategy.md +0 -19
  158. package/skills/_tests/specs/audio-direction.md +0 -123
  159. package/skills/_tests/specs/brainstorm-game.md +0 -99
  160. package/skills/_tests/specs/debug.md +0 -94
  161. package/skills/_tests/specs/design-level.md +0 -113
  162. package/skills/_tests/specs/design-mechanic.md +0 -112
  163. package/skills/_tests/specs/design-npc.md +0 -143
  164. package/skills/_tests/specs/export-and-ship.md +0 -114
  165. package/skills/_tests/specs/fps-controller.md +0 -113
  166. package/skills/_tests/specs/gdscript-patterns.md +0 -19
  167. package/skills/_tests/specs/host-authoritative-state.md +0 -104
  168. package/skills/_tests/specs/make-game.md +0 -19
  169. package/skills/_tests/specs/peer-to-peer-multiplayer.md +0 -99
  170. package/skills/_tests/specs/play.md +0 -88
  171. package/skills/_tests/specs/scene-composition.md +0 -19
  172. package/skills/_tests/specs/setup-multiplayer.md +0 -106
  173. package/skills/_tests/specs/tune-performance.md +0 -104
  174. package/skills/_tests/specs/ui-basics.md +0 -19
  175. package/skills/_tests/specs/vfx.md +0 -116
  176. package/skills/catalog.yaml +0 -991
@@ -1,6 +1,6 @@
1
- export declare const AGENT_CLIENTS: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
1
+ export declare const AGENT_CLIENTS: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "github-copilot", "vscode-copilot", "opencode"];
2
2
  export type AgentClient = (typeof AGENT_CLIENTS)[number];
3
- export declare const SKILL_CATEGORIES: readonly ["_meta", "2d-assets", "3d-assets", "video", "character-controllers", "gameplay-mechanics", "scripting-patterns", "scene-and-project", "rendering-and-lighting", "shaders", "visual-effects", "post-processing", "animation", "audio", "physics", "multiplayer-and-networking", "ai-and-npcs", "level-design", "performance", "ui-and-ux", "asset-pipeline", "input-and-controls", "debugging", "deployment"];
3
+ export declare const SKILL_CATEGORIES: readonly ["workflow", "2d-assets", "3d-assets", "video", "character-controllers", "gameplay-mechanics", "scripting-patterns", "scene-and-project", "rendering-and-lighting", "shaders", "visual-effects", "post-processing", "animation", "audio", "physics", "multiplayer-and-networking", "ai-and-npcs", "level-design", "performance", "ui-and-ux", "asset-pipeline", "input-and-controls", "debugging", "deployment"];
4
4
  export type SkillCategory = (typeof SKILL_CATEGORIES)[number];
5
5
  export interface SkillRegistryEntry {
6
6
  name: string;
@@ -12,15 +12,16 @@ export interface SkillRegistryEntry {
12
12
  testScenario: string;
13
13
  }
14
14
  /**
15
- * Skills with `status: HAVE` in catalog.yaml. The catalog is the planning source
16
- * of truth (~85 skills); this TS registry is the install-time list (only skills
17
- * with shippable content). When a NEXT skill ships, mirror it here.
15
+ * Install-time skill registry — every skill installable via `summer skills install`.
16
+ * Must stay in sync with `.claude-plugin/plugin.json` (and sibling manifests) for
17
+ * Claude Code / Cursor / Codex plugin discovery. The `plugin-manifests.test.ts`
18
+ * test fails the build if a skill exists on disk but not in the manifest.
18
19
  */
19
20
  export declare const SKILL_REGISTRY: readonly [{
20
21
  readonly name: "debug";
21
22
  readonly category: "debugging";
22
23
  readonly public: true;
23
- readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
24
+ readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "github-copilot", "vscode-copilot", "opencode"];
24
25
  readonly recommended: true;
25
26
  readonly requiresMcpTools: readonly ["summer_get_console", "summer_get_debugger_errors", "summer_get_script_errors", "summer_get_diagnostics", "summer_clear_console", "summer_play", "summer_stop", "summer_inspect_node"];
26
27
  readonly testScenario: "Triage a runtime crash end-to-end: read errors, locate code, propose fix, apply on approval, verify.";
@@ -28,7 +29,7 @@ export declare const SKILL_REGISTRY: readonly [{
28
29
  readonly name: "play";
29
30
  readonly category: "scene-and-project";
30
31
  readonly public: true;
31
- readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
32
+ readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "github-copilot", "vscode-copilot", "opencode"];
32
33
  readonly recommended: true;
33
34
  readonly requiresMcpTools: readonly ["summer_is_running", "summer_play", "summer_stop", "summer_clear_console", "summer_get_diagnostics", "summer_get_debugger_errors", "summer_get_script_errors"];
34
35
  readonly testScenario: "Run the game from a clean state, wait for first frame, report whether it runs cleanly or has errors.";
@@ -36,7 +37,7 @@ export declare const SKILL_REGISTRY: readonly [{
36
37
  readonly name: "gdscript-patterns";
37
38
  readonly category: "scripting-patterns";
38
39
  readonly public: true;
39
- readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
40
+ readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "github-copilot", "vscode-copilot", "opencode"];
40
41
  readonly recommended: true;
41
42
  readonly requiresMcpTools: readonly ["summer_get_script_errors"];
42
43
  readonly testScenario: "Write a typed GDScript with a signal, attach it to a node, connect the signal, and verify script errors.";
@@ -44,7 +45,7 @@ export declare const SKILL_REGISTRY: readonly [{
44
45
  readonly name: "scene-composition";
45
46
  readonly category: "scene-and-project";
46
47
  readonly public: true;
47
- readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
48
+ readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "github-copilot", "vscode-copilot", "opencode"];
48
49
  readonly recommended: true;
49
50
  readonly requiresMcpTools: readonly ["summer_create_scene", "summer_open_scene", "summer_get_scene_tree", "summer_add_node", "summer_instantiate_scene", "summer_save_scene"];
50
51
  readonly testScenario: "Build a small reusable player scene, instantiate it in a main scene, and save both scenes through Summer tools.";
@@ -52,7 +53,7 @@ export declare const SKILL_REGISTRY: readonly [{
52
53
  readonly name: "fps-controller";
53
54
  readonly category: "character-controllers";
54
55
  readonly public: true;
55
- readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
56
+ readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "github-copilot", "vscode-copilot", "opencode"];
56
57
  readonly recommended: true;
57
58
  readonly requiresMcpTools: readonly ["summer_add_node", "summer_set_prop", "summer_set_resource_property", "summer_input_map_bind"];
58
59
  readonly testScenario: "Create a CharacterBody3D player with collision, camera, input actions, and a host-edited controller script.";
@@ -60,7 +61,7 @@ export declare const SKILL_REGISTRY: readonly [{
60
61
  readonly name: "3d-lighting";
61
62
  readonly category: "rendering-and-lighting";
62
63
  readonly public: true;
63
- readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
64
+ readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "github-copilot", "vscode-copilot", "opencode"];
64
65
  readonly recommended: true;
65
66
  readonly requiresMcpTools: readonly ["summer_add_node", "summer_set_prop", "summer_set_resource_property"];
66
67
  readonly testScenario: "Add sun, fill lighting, WorldEnvironment, and shadow settings to a simple 3D scene.";
@@ -68,7 +69,7 @@ export declare const SKILL_REGISTRY: readonly [{
68
69
  readonly name: "ui-basics";
69
70
  readonly category: "ui-and-ux";
70
71
  readonly public: true;
71
- readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
72
+ readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "github-copilot", "vscode-copilot", "opencode"];
72
73
  readonly recommended: true;
73
74
  readonly requiresMcpTools: readonly ["summer_add_node", "summer_set_prop", "summer_connect_signal"];
74
75
  readonly testScenario: "Create a HUD CanvasLayer with labels, a ProgressBar, and a connected Button signal.";
@@ -76,7 +77,7 @@ export declare const SKILL_REGISTRY: readonly [{
76
77
  readonly name: "asset-strategy";
77
78
  readonly category: "asset-pipeline";
78
79
  readonly public: true;
79
- readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
80
+ readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "github-copilot", "vscode-copilot", "opencode"];
80
81
  readonly recommended: true;
81
82
  readonly requiresMcpTools: readonly ["summer_search_assets", "summer_import_asset", "summer_import_from_url", "summer_generate_image", "summer_generate_3d", "summer_generate_audio"];
82
83
  readonly testScenario: "Choose library, generated, or primitive assets for a small level and import one asset into the project.";
@@ -84,7 +85,7 @@ export declare const SKILL_REGISTRY: readonly [{
84
85
  readonly name: "make-game";
85
86
  readonly category: "scene-and-project";
86
87
  readonly public: true;
87
- readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
88
+ readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "github-copilot", "vscode-copilot", "opencode"];
88
89
  readonly recommended: true;
89
90
  readonly requiresMcpTools: readonly ["summer_get_agent_playbook", "summer_get_project_context", "summer_create_scene", "summer_open_scene", "summer_save_scene", "summer_add_node", "summer_set_prop", "summer_set_resource_property", "summer_instantiate_scene", "summer_play", "summer_stop", "summer_get_diagnostics"];
90
91
  readonly testScenario: "Build one narrow playable prototype from requirements through scene setup, host-edited scripts, and diagnostics.";
@@ -92,7 +93,7 @@ export declare const SKILL_REGISTRY: readonly [{
92
93
  readonly name: "brainstorm-game";
93
94
  readonly category: "scene-and-project";
94
95
  readonly public: true;
95
- readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
96
+ readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "github-copilot", "vscode-copilot", "opencode"];
96
97
  readonly recommended: true;
97
98
  readonly requiresMcpTools: readonly ["summer_get_project_context", "summer_get_scene_tree"];
98
99
  readonly testScenario: "Walk a fresh user from \"I want to make a game but I don't know what\" to a 1-page brief saved at .summer/GameSoul.md.";
@@ -100,7 +101,7 @@ export declare const SKILL_REGISTRY: readonly [{
100
101
  readonly name: "new-project";
101
102
  readonly category: "scene-and-project";
102
103
  readonly public: true;
103
- readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
104
+ readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "github-copilot", "vscode-copilot", "opencode"];
104
105
  readonly recommended: true;
105
106
  readonly requiresMcpTools: readonly ["summer_get_project_context"];
106
107
  readonly testScenario: "User says \"start a blank project\" — skill asks for the name, picks empty vs 3d-basic, runs summer create, opens the engine, and stops to ask what to build.";
@@ -108,7 +109,7 @@ export declare const SKILL_REGISTRY: readonly [{
108
109
  readonly name: "browse-templates";
109
110
  readonly category: "scene-and-project";
110
111
  readonly public: true;
111
- readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
112
+ readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "github-copilot", "vscode-copilot", "opencode"];
112
113
  readonly recommended: true;
113
114
  readonly requiresMcpTools: readonly ["summer_get_project_context"];
114
115
  readonly testScenario: "User says \"what templates exist?\" — skill runs summer list templates, presents 3-5 curated picks, asks the project name, and runs summer create <slug> <name>.";
@@ -116,7 +117,7 @@ export declare const SKILL_REGISTRY: readonly [{
116
117
  readonly name: "design-mechanic";
117
118
  readonly category: "gameplay-mechanics";
118
119
  readonly public: true;
119
- readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
120
+ readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "github-copilot", "vscode-copilot", "opencode"];
120
121
  readonly recommended: true;
121
122
  readonly requiresMcpTools: readonly ["summer_get_scene_tree", "summer_inspect_node", "summer_add_node", "summer_set_prop", "summer_input_map_bind", "summer_save_scene", "summer_get_script_errors"];
122
123
  readonly testScenario: "Design the double-jump mechanic end-to-end: input, response, feedback, failure modes, depth, then drop a GDScript stub and node sketch.";
@@ -124,7 +125,7 @@ export declare const SKILL_REGISTRY: readonly [{
124
125
  readonly name: "design-level";
125
126
  readonly category: "level-design";
126
127
  readonly public: true;
127
- readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
128
+ readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "github-copilot", "vscode-copilot", "opencode"];
128
129
  readonly recommended: true;
129
130
  readonly requiresMcpTools: readonly ["summer_get_scene_tree", "summer_create_scene", "summer_open_scene", "summer_add_node", "summer_set_prop", "summer_save_scene", "summer_get_script_errors"];
130
131
  readonly testScenario: "Design level 1, a 5-minute combat encounter that teaches parry, and produce a node-tree skeleton ready for summer_create_scene.";
@@ -132,7 +133,7 @@ export declare const SKILL_REGISTRY: readonly [{
132
133
  readonly name: "art-direction";
133
134
  readonly category: "rendering-and-lighting";
134
135
  readonly public: true;
135
- readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
136
+ readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "github-copilot", "vscode-copilot", "opencode"];
136
137
  readonly recommended: true;
137
138
  readonly requiresMcpTools: readonly ["summer_get_project_context", "summer_project_setting", "summer_inspect_node", "summer_set_prop"];
138
139
  readonly testScenario: "Define art direction for a cozy farming sim using Stardew Valley and Sable as references; write the bible to .summer/art-bible.md.";
@@ -140,7 +141,7 @@ export declare const SKILL_REGISTRY: readonly [{
140
141
  readonly name: "audio-direction";
141
142
  readonly category: "audio";
142
143
  readonly public: true;
143
- readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
144
+ readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "github-copilot", "vscode-copilot", "opencode"];
144
145
  readonly recommended: true;
145
146
  readonly requiresMcpTools: readonly ["summer_get_project_context", "summer_get_scene_tree", "summer_inspect_node", "summer_add_node", "summer_project_setting", "summer_generate_audio"];
146
147
  readonly testScenario: "Define audio direction (music + SFX vocabulary + dynamic plan) for a cozy farming sim; write .summer/audio-bible.md and configure the audio bus layout.";
@@ -148,7 +149,7 @@ export declare const SKILL_REGISTRY: readonly [{
148
149
  readonly name: "game-feel";
149
150
  readonly category: "visual-effects";
150
151
  readonly public: true;
151
- readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
152
+ readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "github-copilot", "vscode-copilot", "opencode"];
152
153
  readonly recommended: true;
153
154
  readonly requiresMcpTools: readonly ["summer_get_scene_tree", "summer_inspect_node", "summer_inspect_resource", "summer_add_node", "summer_set_prop", "summer_set_resource_property", "summer_connect_signal", "summer_save_scene", "summer_get_script_errors", "summer_play", "summer_stop"];
154
155
  readonly testScenario: "Add visible juice to flat combat hits in a 30-minute polish pass: hit flash, screen shake, particles, with verified scene state changes.";
@@ -156,7 +157,7 @@ export declare const SKILL_REGISTRY: readonly [{
156
157
  readonly name: "tune-performance";
157
158
  readonly category: "performance";
158
159
  readonly public: true;
159
- readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
160
+ readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "github-copilot", "vscode-copilot", "opencode"];
160
161
  readonly recommended: true;
161
162
  readonly requiresMcpTools: readonly ["summer_get_diagnostics", "summer_get_console", "summer_get_scene_tree", "summer_inspect_node", "summer_inspect_resource", "summer_play", "summer_stop", "summer_is_running", "summer_clear_console", "summer_set_prop", "summer_project_setting"];
162
163
  readonly testScenario: "Profile a slow forest scene (~22 fps), identify the rendering hotspot via diagnostics, propose a fix, verify the metric moved.";
@@ -164,7 +165,7 @@ export declare const SKILL_REGISTRY: readonly [{
164
165
  readonly name: "design-npc";
165
166
  readonly category: "ai-and-npcs";
166
167
  readonly public: true;
167
- readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
168
+ readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "github-copilot", "vscode-copilot", "opencode"];
168
169
  readonly recommended: true;
169
170
  readonly requiresMcpTools: readonly ["summer_get_scene_tree", "summer_inspect_node", "summer_add_node", "summer_set_prop", "summer_set_resource_property", "summer_connect_signal", "summer_save_scene", "summer_get_script_errors", "summer_input_map_bind"];
170
171
  readonly testScenario: "Design a basic patrol-and-chase enemy with perception, decision logic, tells, and defeat handling; output state-machine GDScript stub plus scene tree.";
@@ -172,7 +173,7 @@ export declare const SKILL_REGISTRY: readonly [{
172
173
  readonly name: "setup-multiplayer";
173
174
  readonly category: "multiplayer-and-networking";
174
175
  readonly public: true;
175
- readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
176
+ readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "github-copilot", "vscode-copilot", "opencode"];
176
177
  readonly recommended: true;
177
178
  readonly requiresMcpTools: readonly ["summer_get_scene_tree", "summer_inspect_node", "summer_add_node", "summer_set_prop", "summer_connect_signal", "summer_save_scene", "summer_get_script_errors", "summer_project_setting", "summer_play", "summer_stop"];
178
179
  readonly testScenario: "Add co-op LAN multiplayer (2-4 players) using MultiplayerAPI + MultiplayerSpawner + MultiplayerSynchronizer + ENet; lock authority model up front.";
@@ -180,7 +181,7 @@ export declare const SKILL_REGISTRY: readonly [{
180
181
  readonly name: "peer-to-peer-multiplayer";
181
182
  readonly category: "multiplayer-and-networking";
182
183
  readonly public: true;
183
- readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
184
+ readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "github-copilot", "vscode-copilot", "opencode"];
184
185
  readonly recommended: true;
185
186
  readonly requiresMcpTools: readonly ["summer_get_scene_tree", "summer_inspect_node", "summer_create_scene", "summer_add_node", "summer_set_prop", "summer_connect_signal", "summer_save_scene", "summer_get_script_errors", "summer_project_setting"];
186
187
  readonly testScenario: "Build the four-layer P2P architecture from the ground up (NetworkManager + GameState + RPC patterns + prediction/interpolation) for a 2-player co-op game.";
@@ -188,7 +189,7 @@ export declare const SKILL_REGISTRY: readonly [{
188
189
  readonly name: "host-authoritative-state";
189
190
  readonly category: "multiplayer-and-networking";
190
191
  readonly public: true;
191
- readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
192
+ readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "github-copilot", "vscode-copilot", "opencode"];
192
193
  readonly recommended: true;
193
194
  readonly requiresMcpTools: readonly ["summer_get_scene_tree", "summer_inspect_node", "summer_save_scene", "summer_get_script_errors"];
194
195
  readonly testScenario: "Walk a 17-field state ownership audit, design a HealthManager + ScoreManager with the canonical Manager pattern, and verify late-join state replay works.";
@@ -196,7 +197,7 @@ export declare const SKILL_REGISTRY: readonly [{
196
197
  readonly name: "export-and-ship";
197
198
  readonly category: "deployment";
198
199
  readonly public: true;
199
- readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
200
+ readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "github-copilot", "vscode-copilot", "opencode"];
200
201
  readonly recommended: true;
201
202
  readonly requiresMcpTools: readonly ["summer_get_scene_tree", "summer_inspect_node", "summer_project_setting", "summer_get_console", "summer_get_diagnostics"];
202
203
  readonly testScenario: "Run the Steam pre-flight checklist (Windows + Mac + Linux), validate icons/banners/screenshots/build config, and produce a release build only when green.";
@@ -204,7 +205,7 @@ export declare const SKILL_REGISTRY: readonly [{
204
205
  readonly name: "concept-art";
205
206
  readonly category: "2d-assets";
206
207
  readonly public: true;
207
- readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
208
+ readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "github-copilot", "vscode-copilot", "opencode"];
208
209
  readonly recommended: true;
209
210
  readonly requiresMcpTools: readonly ["summer_generate_image", "summer_search_assets", "summer_import_from_url"];
210
211
  readonly testScenario: "User asks for 'concept art for the protagonist' — skill produces 3-4 variant prompts on a locked style anchor and writes prompts to art/concept/_prompts.md as fallback when MCP unavailable.";
@@ -212,7 +213,7 @@ export declare const SKILL_REGISTRY: readonly [{
212
213
  readonly name: "character-portrait";
213
214
  readonly category: "2d-assets";
214
215
  readonly public: true;
215
- readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
216
+ readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "github-copilot", "vscode-copilot", "opencode"];
216
217
  readonly recommended: true;
217
218
  readonly requiresMcpTools: readonly ["summer_generate_image", "summer_search_assets", "summer_import_from_url"];
218
219
  readonly testScenario: "User asks for a 'final portrait of the queen for dialogue UI' — skill locks composition, generates one polished bust against a locked anchor, imports as res://art/portraits/queen.png.";
@@ -220,7 +221,7 @@ export declare const SKILL_REGISTRY: readonly [{
220
221
  readonly name: "pixel-art";
221
222
  readonly category: "2d-assets";
222
223
  readonly public: true;
223
- readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
224
+ readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "github-copilot", "vscode-copilot", "opencode"];
224
225
  readonly recommended: true;
225
226
  readonly requiresMcpTools: readonly ["summer_generate_image", "summer_search_assets", "summer_import_from_url"];
226
227
  readonly testScenario: "User requests a '64x64 pixel art heart icon' — skill generates with style: 'pixel', enforces nearest-neighbor texture filter project setting, imports to res://art/sprites/.";
@@ -228,7 +229,7 @@ export declare const SKILL_REGISTRY: readonly [{
228
229
  readonly name: "ui-graphics";
229
230
  readonly category: "2d-assets";
230
231
  readonly public: true;
231
- readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
232
+ readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "github-copilot", "vscode-copilot", "opencode"];
232
233
  readonly recommended: false;
233
234
  readonly requiresMcpTools: readonly ["summer_generate_image", "summer_import_from_url", "summer_add_node", "summer_set_prop"];
234
235
  readonly testScenario: "User asks for an inventory grid icon set — skill generates flat-design transparent PNGs, sets up AtlasTexture import, wires into TextureRect / NinePatchRect.";
@@ -236,7 +237,7 @@ export declare const SKILL_REGISTRY: readonly [{
236
237
  readonly name: "tileable-texture";
237
238
  readonly category: "2d-assets";
238
239
  readonly public: true;
239
- readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
240
+ readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "github-copilot", "vscode-copilot", "opencode"];
240
241
  readonly recommended: false;
241
242
  readonly requiresMcpTools: readonly ["summer_generate_image", "summer_import_from_url", "summer_set_resource_property"];
242
243
  readonly testScenario: "User asks for a 'seamless brick wall texture' — skill generates with seamless prompt suffix, applies to PlaneMesh + StandardMaterial3D with uv1_scale tiled.";
@@ -244,7 +245,7 @@ export declare const SKILL_REGISTRY: readonly [{
244
245
  readonly name: "sprite-sheet";
245
246
  readonly category: "2d-assets";
246
247
  readonly public: true;
247
- readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
248
+ readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "github-copilot", "vscode-copilot", "opencode"];
248
249
  readonly recommended: false;
249
250
  readonly requiresMcpTools: readonly ["summer_generate_image", "summer_import_from_url", "summer_set_resource_property", "summer_add_node", "summer_set_prop"];
250
251
  readonly testScenario: "User requests a '4-frame walk cycle for the goblin' — skill generates per-frame at locked anchor, builds SpriteFrames resource, wires AnimatedSprite2D.";
@@ -252,7 +253,7 @@ export declare const SKILL_REGISTRY: readonly [{
252
253
  readonly name: "skybox-panorama";
253
254
  readonly category: "2d-assets";
254
255
  readonly public: true;
255
- readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
256
+ readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "github-copilot", "vscode-copilot", "opencode"];
256
257
  readonly recommended: false;
257
258
  readonly requiresMcpTools: readonly ["summer_generate_image", "summer_import_from_url", "summer_set_resource_property"];
258
259
  readonly testScenario: "User asks for a 'sunset desert skybox' — skill generates equirectangular 2:1 panorama, wires PanoramaSkyMaterial on WorldEnvironment.";
@@ -260,7 +261,7 @@ export declare const SKILL_REGISTRY: readonly [{
260
261
  readonly name: "prop-model";
261
262
  readonly category: "3d-assets";
262
263
  readonly public: true;
263
- readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
264
+ readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "github-copilot", "vscode-copilot", "opencode"];
264
265
  readonly recommended: true;
265
266
  readonly requiresMcpTools: readonly ["summer_generate_3d", "summer_search_assets", "summer_import_from_url", "summer_add_node", "summer_set_prop"];
266
267
  readonly testScenario: "User asks for 'a treasure chest' — skill calls summer_generate_3d via image-to-3d pipeline with white-background prompt suffix, imports as MeshInstance3D.";
@@ -268,7 +269,7 @@ export declare const SKILL_REGISTRY: readonly [{
268
269
  readonly name: "character-model";
269
270
  readonly category: "3d-assets";
270
271
  readonly public: true;
271
- readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
272
+ readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "github-copilot", "vscode-copilot", "opencode"];
272
273
  readonly recommended: true;
273
274
  readonly requiresMcpTools: readonly ["summer_generate_image", "summer_generate_3d", "summer_generate_motion", "summer_search_assets", "summer_inspect_resource", "summer_add_node", "summer_set_prop", "summer_save_scene"];
274
275
  readonly testScenario: "User asks for 'a knight character' — skill produces T-pose ref via image, gates rig pass on user approval, imports rigged glb, wires CharacterBody3D + Skeleton3D, hands off to animation/generate-motion.";
@@ -276,7 +277,7 @@ export declare const SKILL_REGISTRY: readonly [{
276
277
  readonly name: "environment-kit";
277
278
  readonly category: "3d-assets";
278
279
  readonly public: true;
279
- readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
280
+ readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "github-copilot", "vscode-copilot", "opencode"];
280
281
  readonly recommended: false;
281
282
  readonly requiresMcpTools: readonly ["summer_generate_3d", "summer_search_assets", "summer_import_from_url", "summer_add_node", "summer_set_prop", "summer_save_scene"];
282
283
  readonly testScenario: "User asks for 'a dungeon kit' — skill locks style anchor, generates 5-10 modular pieces with consistent prompt suffix, imports on snap-grid.";
@@ -284,7 +285,7 @@ export declare const SKILL_REGISTRY: readonly [{
284
285
  readonly name: "vehicle-model";
285
286
  readonly category: "3d-assets";
286
287
  readonly public: true;
287
- readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
288
+ readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "github-copilot", "vscode-copilot", "opencode"];
288
289
  readonly recommended: false;
289
290
  readonly requiresMcpTools: readonly ["summer_generate_3d", "summer_search_assets", "summer_import_from_url", "summer_add_node", "summer_set_prop"];
290
291
  readonly testScenario: "User asks for 'a sci-fi hover bike' — skill provides multi-angle reference, generates with hard-surface model preference, recommends texture pass for panel detail.";
@@ -292,7 +293,7 @@ export declare const SKILL_REGISTRY: readonly [{
292
293
  readonly name: "organic-model";
293
294
  readonly category: "3d-assets";
294
295
  readonly public: true;
295
- readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
296
+ readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "github-copilot", "vscode-copilot", "opencode"];
296
297
  readonly recommended: false;
297
298
  readonly requiresMcpTools: readonly ["summer_generate_3d", "summer_search_assets", "summer_import_from_url", "summer_add_node", "summer_set_prop"];
298
299
  readonly testScenario: "User asks for 'a glowing mushroom cluster' — skill generates organic shape via summer_generate_3d, imports with emission material, suggests MultiMeshInstance3D for forest fill.";
@@ -300,7 +301,7 @@ export declare const SKILL_REGISTRY: readonly [{
300
301
  readonly name: "generate-motion";
301
302
  readonly category: "animation";
302
303
  readonly public: true;
303
- readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
304
+ readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "github-copilot", "vscode-copilot", "opencode"];
304
305
  readonly recommended: true;
305
306
  readonly requiresMcpTools: readonly ["summer_generate_motion", "summer_check_job", "summer_search_assets", "summer_inspect_resource", "summer_get_scene_tree", "summer_add_node", "summer_set_prop", "summer_set_resource_property", "summer_save_scene"];
306
307
  readonly testScenario: "User asks for 'a walk animation on the goblin' — skill verifies the rigged target, picks meshy-library backend for standard 'walk', wires the clip into AnimationPlayer.";
@@ -308,7 +309,7 @@ export declare const SKILL_REGISTRY: readonly [{
308
309
  readonly name: "retarget";
309
310
  readonly category: "animation";
310
311
  readonly public: true;
311
- readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
312
+ readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "github-copilot", "vscode-copilot", "opencode"];
312
313
  readonly recommended: false;
313
314
  readonly requiresMcpTools: readonly ["summer_generate_motion", "summer_search_assets", "summer_inspect_resource", "summer_set_resource_property", "summer_save_scene"];
314
315
  readonly testScenario: "User asks to 'apply the goblin's walk to the orc' — skill identifies the source clip, retargets to the orc skeleton via SkeletonProfile, wires into the orc's AnimationPlayer.";
@@ -316,7 +317,7 @@ export declare const SKILL_REGISTRY: readonly [{
316
317
  readonly name: "animation-tree";
317
318
  readonly category: "animation";
318
319
  readonly public: true;
319
- readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
320
+ readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "github-copilot", "vscode-copilot", "opencode"];
320
321
  readonly recommended: false;
321
322
  readonly requiresMcpTools: readonly ["summer_get_scene_tree", "summer_inspect_node", "summer_add_node", "summer_set_prop", "summer_set_resource_property", "summer_save_scene"];
322
323
  readonly testScenario: "User has idle/walk/run clips — skill builds an AnimationTree with a BlendSpace1D driven by speed, wires the BlendTree to the player controller.";
@@ -324,7 +325,7 @@ export declare const SKILL_REGISTRY: readonly [{
324
325
  readonly name: "procedural-animation";
325
326
  readonly category: "animation";
326
327
  readonly public: true;
327
- readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
328
+ readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "github-copilot", "vscode-copilot", "opencode"];
328
329
  readonly recommended: false;
329
330
  readonly requiresMcpTools: readonly ["summer_get_scene_tree", "summer_inspect_node", "summer_add_node", "summer_set_prop", "summer_save_scene"];
330
331
  readonly testScenario: "User asks for 'foot IK so the character doesn't sink into stairs' — skill adds SkeletonModification3DLookAt + raycasting on each foot, wires into the character's Skeleton3D.";
@@ -332,7 +333,7 @@ export declare const SKILL_REGISTRY: readonly [{
332
333
  readonly name: "facial-and-lipsync";
333
334
  readonly category: "animation";
334
335
  readonly public: true;
335
- readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
336
+ readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "github-copilot", "vscode-copilot", "opencode"];
336
337
  readonly recommended: false;
337
338
  readonly requiresMcpTools: readonly ["summer_inspect_resource", "summer_set_resource_property", "summer_save_scene", "summer_generate_audio"];
338
339
  readonly testScenario: "User has a voice line and wants the character to lip-sync to it — skill generates phoneme markers, builds blend-shape animation track on the character's MeshInstance3D.";
@@ -340,7 +341,7 @@ export declare const SKILL_REGISTRY: readonly [{
340
341
  readonly name: "sound-effect";
341
342
  readonly category: "audio";
342
343
  readonly public: true;
343
- readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
344
+ readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "github-copilot", "vscode-copilot", "opencode"];
344
345
  readonly recommended: true;
345
346
  readonly requiresMcpTools: readonly ["summer_generate_audio", "summer_search_assets", "summer_import_from_url", "summer_add_node", "summer_set_prop"];
346
347
  readonly testScenario: "User asks for 'a sword swing sound' — skill reads audio bible, builds ElevenLabs SFX prompt with material+action+intensity, wires AudioStreamPlayer3D on the SFX bus.";
@@ -348,7 +349,7 @@ export declare const SKILL_REGISTRY: readonly [{
348
349
  readonly name: "music-track";
349
350
  readonly category: "audio";
350
351
  readonly public: true;
351
- readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
352
+ readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "github-copilot", "vscode-copilot", "opencode"];
352
353
  readonly recommended: true;
353
354
  readonly requiresMcpTools: readonly ["summer_generate_audio", "summer_search_assets", "summer_import_from_url", "summer_add_node", "summer_set_prop"];
354
355
  readonly testScenario: "User asks for 'ambient forest theme music for level 1' — skill generates 60s loop via ElevenLabs music, imports with loop enabled, wires AudioStreamPlayer on Music bus.";
@@ -356,7 +357,7 @@ export declare const SKILL_REGISTRY: readonly [{
356
357
  readonly name: "ambient-bed";
357
358
  readonly category: "audio";
358
359
  readonly public: true;
359
- readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
360
+ readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "github-copilot", "vscode-copilot", "opencode"];
360
361
  readonly recommended: false;
361
362
  readonly requiresMcpTools: readonly ["summer_generate_audio", "summer_search_assets", "summer_import_from_url", "summer_add_node", "summer_set_prop"];
362
363
  readonly testScenario: "User asks for 'rain on tin roof ambience' — skill generates loop-clean ambience, sets up positional or non-positional player on Ambient bus.";
@@ -364,7 +365,7 @@ export declare const SKILL_REGISTRY: readonly [{
364
365
  readonly name: "voice-line";
365
366
  readonly category: "audio";
366
367
  readonly public: true;
367
- readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
368
+ readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "github-copilot", "vscode-copilot", "opencode"];
368
369
  readonly recommended: true;
369
370
  readonly requiresMcpTools: readonly ["summer_generate_audio", "summer_search_assets", "summer_import_from_url", "summer_add_node", "summer_set_prop"];
370
371
  readonly testScenario: "User asks for 'the king says: you have served me well' — skill picks a voice ID matching character traits, generates TTS, wires to character's mouth via AudioStreamPlayer3D.";
@@ -372,7 +373,7 @@ export declare const SKILL_REGISTRY: readonly [{
372
373
  readonly name: "adaptive-music";
373
374
  readonly category: "audio";
374
375
  readonly public: true;
375
- readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
376
+ readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "github-copilot", "vscode-copilot", "opencode"];
376
377
  readonly recommended: false;
377
378
  readonly requiresMcpTools: readonly ["summer_generate_audio", "summer_search_assets", "summer_inspect_node", "summer_add_node", "summer_set_prop", "summer_set_resource_property"];
378
379
  readonly testScenario: "User wants combat music that swells when enemies are nearby — skill generates layered stems (calm, tension, combat), wires AudioStreamPlaybackInteractive with combat-state listener.";
@@ -380,7 +381,7 @@ export declare const SKILL_REGISTRY: readonly [{
380
381
  readonly name: "cinematic-cutscene";
381
382
  readonly category: "video";
382
383
  readonly public: true;
383
- readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
384
+ readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "github-copilot", "vscode-copilot", "opencode"];
384
385
  readonly recommended: true;
385
386
  readonly requiresMcpTools: readonly ["summer_generate_video", "summer_generate_image", "summer_generate_audio", "summer_search_assets", "summer_import_from_url", "summer_add_node", "summer_set_prop"];
386
387
  readonly testScenario: "User asks for 'an opening cutscene where the hero arrives at the castle' — skill builds reference image, generates 5-10s shot via image-to-video, wires VideoStreamPlayer in cutscene scene.";
@@ -388,7 +389,7 @@ export declare const SKILL_REGISTRY: readonly [{
388
389
  readonly name: "trailer-shot";
389
390
  readonly category: "video";
390
391
  readonly public: true;
391
- readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
392
+ readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "github-copilot", "vscode-copilot", "opencode"];
392
393
  readonly recommended: false;
393
394
  readonly requiresMcpTools: readonly ["summer_generate_video", "summer_generate_image", "summer_search_assets", "summer_import_from_url"];
394
395
  readonly testScenario: "User asks for 'a hero shot of the boss for the trailer' — skill picks kling for premium quality, generates 5s low-angle dramatic shot, exports to assets/trailer/.";
@@ -396,7 +397,7 @@ export declare const SKILL_REGISTRY: readonly [{
396
397
  readonly name: "animated-loop";
397
398
  readonly category: "video";
398
399
  readonly public: true;
399
- readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
400
+ readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "github-copilot", "vscode-copilot", "opencode"];
400
401
  readonly recommended: false;
401
402
  readonly requiresMcpTools: readonly ["summer_generate_video", "summer_search_assets", "summer_import_from_url", "summer_add_node", "summer_set_prop"];
402
403
  readonly testScenario: "User asks for 'a looping fire backdrop for the title screen' — skill generates 3-5s loop-clean clip via ltx, wires VideoStreamPlayer with autoplay+loop in title scene.";
@@ -404,7 +405,7 @@ export declare const SKILL_REGISTRY: readonly [{
404
405
  readonly name: "fire";
405
406
  readonly category: "visual-effects";
406
407
  readonly public: true;
407
- readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
408
+ readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "github-copilot", "vscode-copilot", "opencode"];
408
409
  readonly recommended: true;
409
410
  readonly requiresMcpTools: readonly ["summer_add_node", "summer_set_prop", "summer_set_resource_property", "summer_inspect_node", "summer_save_scene"];
410
411
  readonly testScenario: "User asks for 'a torch flame' — skill creates GPUParticles3D with custom shader, writes addons/vfx/fire/{fire.gdshader, fire_controller.gd}, wires to scene.";
@@ -412,7 +413,7 @@ export declare const SKILL_REGISTRY: readonly [{
412
413
  readonly name: "muzzle-flash";
413
414
  readonly category: "visual-effects";
414
415
  readonly public: true;
415
- readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
416
+ readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "github-copilot", "vscode-copilot", "opencode"];
416
417
  readonly recommended: true;
417
418
  readonly requiresMcpTools: readonly ["summer_add_node", "summer_set_prop", "summer_set_resource_property", "summer_inspect_node", "summer_save_scene"];
418
419
  readonly testScenario: "User asks for 'a muzzle flash on the rifle' — skill creates one-shot GPUParticles3D with star-burst shader, wires restart() on weapon-fire signal.";
@@ -420,7 +421,7 @@ export declare const SKILL_REGISTRY: readonly [{
420
421
  readonly name: "water-ripple";
421
422
  readonly category: "visual-effects";
422
423
  readonly public: true;
423
- readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
424
+ readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "github-copilot", "vscode-copilot", "opencode"];
424
425
  readonly recommended: false;
425
426
  readonly requiresMcpTools: readonly ["summer_add_node", "summer_set_prop", "summer_set_resource_property", "summer_inspect_node", "summer_save_scene"];
426
427
  readonly testScenario: "User wants 'water ripples when objects splash' — skill creates MeshInstance3D plane with custom water shader, exposes add_ripple(position) API.";
@@ -428,7 +429,7 @@ export declare const SKILL_REGISTRY: readonly [{
428
429
  readonly name: "lightning";
429
430
  readonly category: "visual-effects";
430
431
  readonly public: true;
431
- readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
432
+ readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "github-copilot", "vscode-copilot", "opencode"];
432
433
  readonly recommended: false;
433
434
  readonly requiresMcpTools: readonly ["summer_add_node", "summer_set_prop", "summer_set_resource_property", "summer_inspect_node", "summer_save_scene", "summer_connect_signal"];
434
435
  readonly testScenario: "User wants 'a lightning strike VFX' — skill builds ImmediateMesh-based jagged-segment renderer with shader, calls CameraShake.add_trauma(0.6) on cast.";
@@ -436,7 +437,7 @@ export declare const SKILL_REGISTRY: readonly [{
436
437
  readonly name: "dissolve";
437
438
  readonly category: "visual-effects";
438
439
  readonly public: true;
439
- readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
440
+ readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "github-copilot", "vscode-copilot", "opencode"];
440
441
  readonly recommended: false;
441
442
  readonly requiresMcpTools: readonly ["summer_add_node", "summer_set_prop", "summer_set_resource_property", "summer_inspect_node", "summer_save_scene"];
442
443
  readonly testScenario: "User wants 'an enemy that dissolves on death' — skill writes dissolve.gdshader override + dissolve_object(target, duration) controller, animates threshold uniform.";
@@ -444,7 +445,7 @@ export declare const SKILL_REGISTRY: readonly [{
444
445
  readonly name: "smoke";
445
446
  readonly category: "visual-effects";
446
447
  readonly public: true;
447
- readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
448
+ readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "github-copilot", "vscode-copilot", "opencode"];
448
449
  readonly recommended: false;
449
450
  readonly requiresMcpTools: readonly ["summer_add_node", "summer_set_prop", "summer_set_resource_property", "summer_inspect_node", "summer_save_scene"];
450
451
  readonly testScenario: "User wants 'smoke from a burning torch' — skill creates GPUParticles3D + smoke shader using shared FBM noise, wires wind direction parameter.";
@@ -452,7 +453,7 @@ export declare const SKILL_REGISTRY: readonly [{
452
453
  readonly name: "hit-spark";
453
454
  readonly category: "visual-effects";
454
455
  readonly public: true;
455
- readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
456
+ readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "github-copilot", "vscode-copilot", "opencode"];
456
457
  readonly recommended: false;
457
458
  readonly requiresMcpTools: readonly ["summer_add_node", "summer_set_prop", "summer_set_resource_property", "summer_inspect_node", "summer_save_scene"];
458
459
  readonly testScenario: "User wants 'sparks when a sword hits metal' — skill spawns one-shot GPUParticles3D with additive billboard material, orients to surface normal.";
@@ -460,8 +461,80 @@ export declare const SKILL_REGISTRY: readonly [{
460
461
  readonly name: "magic-glow";
461
462
  readonly category: "visual-effects";
462
463
  readonly public: true;
463
- readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
464
+ readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "github-copilot", "vscode-copilot", "opencode"];
464
465
  readonly recommended: false;
465
466
  readonly requiresMcpTools: readonly ["summer_add_node", "summer_set_prop", "summer_set_resource_property", "summer_inspect_node", "summer_save_scene"];
466
467
  readonly testScenario: "User wants 'a magical glow on a rune' — skill creates OmniLight3D with pulse-on-sin script + GPUParticles3D motes, uses additive billboard material from building blocks.";
468
+ }, {
469
+ readonly name: "brainstorming";
470
+ readonly category: "workflow";
471
+ readonly public: true;
472
+ readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "github-copilot", "vscode-copilot", "opencode"];
473
+ readonly recommended: true;
474
+ readonly requiresMcpTools: readonly [];
475
+ readonly testScenario: "User says 'let's make a game' — skill explores intent, scope, and references through one-question-at-a-time dialogue before any code or scene work begins.";
476
+ }, {
477
+ readonly name: "investigating-bugs";
478
+ readonly category: "workflow";
479
+ readonly public: true;
480
+ readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "github-copilot", "vscode-copilot", "opencode"];
481
+ readonly recommended: true;
482
+ readonly requiresMcpTools: readonly [];
483
+ readonly testScenario: "Encountering a bug whose first fix didn't stick — skill forces hypothesis-driven root cause analysis before another patch attempt.";
484
+ }, {
485
+ readonly name: "verification-before-completion";
486
+ readonly category: "workflow";
487
+ readonly public: true;
488
+ readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "github-copilot", "vscode-copilot", "opencode"];
489
+ readonly recommended: true;
490
+ readonly requiresMcpTools: readonly [];
491
+ readonly testScenario: "About to claim a feature is done — skill blocks the claim until verification commands have been run and their output reviewed.";
492
+ }, {
493
+ readonly name: "writing-plans";
494
+ readonly category: "workflow";
495
+ readonly public: true;
496
+ readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "github-copilot", "vscode-copilot", "opencode"];
497
+ readonly recommended: false;
498
+ readonly requiresMcpTools: readonly [];
499
+ readonly testScenario: "User has a multi-step spec — skill produces a written plan with checkpoints before any implementation begins.";
500
+ }, {
501
+ readonly name: "dispatching-parallel-agents";
502
+ readonly category: "workflow";
503
+ readonly public: true;
504
+ readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "github-copilot", "vscode-copilot", "opencode"];
505
+ readonly recommended: false;
506
+ readonly requiresMcpTools: readonly [];
507
+ readonly testScenario: "Facing 2+ independent tasks — skill prepares isolated, self-contained agent prompts and dispatches them in parallel.";
508
+ }, {
509
+ readonly name: "writing-skills";
510
+ readonly category: "workflow";
511
+ readonly public: true;
512
+ readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "github-copilot", "vscode-copilot", "opencode"];
513
+ readonly recommended: false;
514
+ readonly requiresMcpTools: readonly [];
515
+ readonly testScenario: "User wants a new Summer skill — skill walks through frontmatter, body structure, and the auto-trigger discipline required for the skill to fire reliably.";
516
+ }, {
517
+ readonly name: "playtesting-a-feature";
518
+ readonly category: "workflow";
519
+ readonly public: true;
520
+ readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "github-copilot", "vscode-copilot", "opencode"];
521
+ readonly recommended: true;
522
+ readonly requiresMcpTools: readonly ["summer_play", "summer_stop", "summer_get_console", "summer_get_debugger_errors", "summer_get_diagnostics"];
523
+ readonly testScenario: "Just finished a gameplay feature — skill drives a golden-path + edge-case playthrough with diagnostics capture before the feature can be marked done.";
524
+ }, {
525
+ readonly name: "debugging-game-feel";
526
+ readonly category: "workflow";
527
+ readonly public: true;
528
+ readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "github-copilot", "vscode-copilot", "opencode"];
529
+ readonly recommended: false;
530
+ readonly requiresMcpTools: readonly ["summer_play", "summer_stop", "summer_inspect_node"];
531
+ readonly testScenario: "User says 'the jump feels floaty' — skill isolates one variable at a time against a reference anchor, avoids compounding tweaks.";
532
+ }, {
533
+ readonly name: "diagnosing-perf-regressions";
534
+ readonly category: "workflow";
535
+ readonly public: true;
536
+ readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "github-copilot", "vscode-copilot", "opencode"];
537
+ readonly recommended: false;
538
+ readonly requiresMcpTools: readonly ["summer_get_diagnostics", "summer_play", "summer_stop"];
539
+ readonly testScenario: "FPS dropped from 60 to 30 — skill bisects recent changes, captures before/after diagnostics, identifies the regression cause before tuning.";
467
540
  }];