summer-engine 2.0.0 → 2.3.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.
- package/{marketplace.json → .claude-plugin/marketplace.json} +3 -3
- package/.claude-plugin/plugin.json +37 -4
- package/.codex-plugin/plugin.json +38 -5
- package/.cursor-plugin/plugin.json +37 -4
- package/.factory-plugin/plugin.json +20 -0
- package/.opencode/INSTALL.md +9 -3
- package/.opencode/plugins/summer.js +0 -2
- package/AGENTS.md +51 -0
- package/CLAUDE.md +5 -0
- package/GEMINI.md +56 -0
- package/README.md +211 -61
- package/_persona/summer/SKILL.md +113 -0
- package/dist/commands/install.js +2 -2
- package/dist/commands/setup.js +4 -0
- package/dist/commands/skills.js +115 -2
- package/dist/lib/agent-config.d.ts +2 -2
- package/dist/lib/agent-config.js +171 -5
- package/dist/lib/skills-registry.d.ts +290 -26
- package/dist/lib/skills-registry.js +503 -1
- package/dist/mcp/tools/generate-tools.js +101 -0
- package/gemini-extension.json +2 -2
- package/package.json +9 -3
- package/skills/2d-assets/character-portrait/SKILL.md +196 -0
- package/skills/2d-assets/concept-art/SKILL.md +152 -0
- package/skills/2d-assets/pixel-art/SKILL.md +180 -0
- package/skills/2d-assets/skybox-panorama/SKILL.md +207 -0
- package/skills/2d-assets/sprite-sheet/SKILL.md +239 -0
- package/skills/2d-assets/tileable-texture/SKILL.md +205 -0
- package/skills/2d-assets/ui-graphics/SKILL.md +210 -0
- package/skills/3d-assets/character-model/SKILL.md +225 -0
- package/skills/3d-assets/environment-kit/SKILL.md +164 -0
- package/skills/3d-assets/organic-model/SKILL.md +192 -0
- package/skills/3d-assets/prop-model/SKILL.md +133 -0
- package/skills/3d-assets/vehicle-model/SKILL.md +202 -0
- package/skills/ai-and-npcs/design-npc/SKILL.md +3 -1
- package/skills/animation/animation-tree/SKILL.md +260 -0
- package/skills/animation/facial-and-lipsync/SKILL.md +282 -0
- package/skills/animation/generate-motion/SKILL.md +129 -0
- package/skills/animation/procedural-animation/SKILL.md +234 -0
- package/skills/animation/retarget/SKILL.md +172 -0
- package/skills/asset-pipeline/asset-strategy/SKILL.md +102 -212
- package/skills/audio/adaptive-music/SKILL.md +326 -0
- package/skills/audio/ambient-bed/SKILL.md +278 -0
- package/skills/audio/music-track/SKILL.md +268 -0
- package/skills/audio/sound-effect/SKILL.md +237 -0
- package/skills/audio/voice-line/SKILL.md +253 -0
- package/skills/catalog.yaml +249 -3
- package/skills/video/animated-loop/SKILL.md +200 -0
- package/skills/video/cinematic-cutscene/SKILL.md +204 -0
- package/skills/video/trailer-shot/SKILL.md +203 -0
- package/skills/visual-effects/_building-blocks/additive-billboard-particles.md +28 -0
- package/skills/visual-effects/_building-blocks/noise-3d-fbm.gdshaderinc +45 -0
- package/skills/visual-effects/_building-blocks/trauma-shake-snippet.md +51 -0
- package/skills/visual-effects/{vfx → game-feel}/SKILL.md +1 -1
- package/skills/visual-effects/recipes/dissolve/SKILL.md +349 -0
- package/skills/visual-effects/recipes/fire/SKILL.md +387 -0
- package/skills/visual-effects/recipes/hit-spark/SKILL.md +330 -0
- package/skills/visual-effects/recipes/lightning/SKILL.md +372 -0
- package/skills/visual-effects/recipes/magic-glow/SKILL.md +377 -0
- package/skills/visual-effects/recipes/muzzle-flash/SKILL.md +326 -0
- package/skills/visual-effects/recipes/smoke/SKILL.md +381 -0
- package/skills/visual-effects/recipes/water-ripple/SKILL.md +340 -0
|
@@ -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", "opencode"];
|
|
2
2
|
export type AgentClient = (typeof AGENT_CLIENTS)[number];
|
|
3
|
-
export declare const SKILL_CATEGORIES: readonly ["_meta", "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 ["_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"];
|
|
4
4
|
export type SkillCategory = (typeof SKILL_CATEGORIES)[number];
|
|
5
5
|
export interface SkillRegistryEntry {
|
|
6
6
|
name: string;
|
|
@@ -20,7 +20,7 @@ export declare const SKILL_REGISTRY: readonly [{
|
|
|
20
20
|
readonly name: "debug";
|
|
21
21
|
readonly category: "debugging";
|
|
22
22
|
readonly public: true;
|
|
23
|
-
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
|
|
23
|
+
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "opencode"];
|
|
24
24
|
readonly recommended: true;
|
|
25
25
|
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
26
|
readonly testScenario: "Triage a runtime crash end-to-end: read errors, locate code, propose fix, apply on approval, verify.";
|
|
@@ -28,7 +28,7 @@ export declare const SKILL_REGISTRY: readonly [{
|
|
|
28
28
|
readonly name: "play";
|
|
29
29
|
readonly category: "scene-and-project";
|
|
30
30
|
readonly public: true;
|
|
31
|
-
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
|
|
31
|
+
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "opencode"];
|
|
32
32
|
readonly recommended: true;
|
|
33
33
|
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
34
|
readonly testScenario: "Run the game from a clean state, wait for first frame, report whether it runs cleanly or has errors.";
|
|
@@ -36,7 +36,7 @@ export declare const SKILL_REGISTRY: readonly [{
|
|
|
36
36
|
readonly name: "gdscript-patterns";
|
|
37
37
|
readonly category: "scripting-patterns";
|
|
38
38
|
readonly public: true;
|
|
39
|
-
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
|
|
39
|
+
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "opencode"];
|
|
40
40
|
readonly recommended: true;
|
|
41
41
|
readonly requiresMcpTools: readonly ["summer_get_script_errors"];
|
|
42
42
|
readonly testScenario: "Write a typed GDScript with a signal, attach it to a node, connect the signal, and verify script errors.";
|
|
@@ -44,7 +44,7 @@ export declare const SKILL_REGISTRY: readonly [{
|
|
|
44
44
|
readonly name: "scene-composition";
|
|
45
45
|
readonly category: "scene-and-project";
|
|
46
46
|
readonly public: true;
|
|
47
|
-
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
|
|
47
|
+
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "opencode"];
|
|
48
48
|
readonly recommended: true;
|
|
49
49
|
readonly requiresMcpTools: readonly ["summer_create_scene", "summer_open_scene", "summer_get_scene_tree", "summer_add_node", "summer_instantiate_scene", "summer_save_scene"];
|
|
50
50
|
readonly testScenario: "Build a small reusable player scene, instantiate it in a main scene, and save both scenes through Summer tools.";
|
|
@@ -52,7 +52,7 @@ export declare const SKILL_REGISTRY: readonly [{
|
|
|
52
52
|
readonly name: "fps-controller";
|
|
53
53
|
readonly category: "character-controllers";
|
|
54
54
|
readonly public: true;
|
|
55
|
-
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
|
|
55
|
+
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "opencode"];
|
|
56
56
|
readonly recommended: true;
|
|
57
57
|
readonly requiresMcpTools: readonly ["summer_add_node", "summer_set_prop", "summer_set_resource_property", "summer_input_map_bind"];
|
|
58
58
|
readonly testScenario: "Create a CharacterBody3D player with collision, camera, input actions, and a host-edited controller script.";
|
|
@@ -60,7 +60,7 @@ export declare const SKILL_REGISTRY: readonly [{
|
|
|
60
60
|
readonly name: "3d-lighting";
|
|
61
61
|
readonly category: "rendering-and-lighting";
|
|
62
62
|
readonly public: true;
|
|
63
|
-
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
|
|
63
|
+
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "opencode"];
|
|
64
64
|
readonly recommended: true;
|
|
65
65
|
readonly requiresMcpTools: readonly ["summer_add_node", "summer_set_prop", "summer_set_resource_property"];
|
|
66
66
|
readonly testScenario: "Add sun, fill lighting, WorldEnvironment, and shadow settings to a simple 3D scene.";
|
|
@@ -68,7 +68,7 @@ export declare const SKILL_REGISTRY: readonly [{
|
|
|
68
68
|
readonly name: "ui-basics";
|
|
69
69
|
readonly category: "ui-and-ux";
|
|
70
70
|
readonly public: true;
|
|
71
|
-
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
|
|
71
|
+
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "opencode"];
|
|
72
72
|
readonly recommended: true;
|
|
73
73
|
readonly requiresMcpTools: readonly ["summer_add_node", "summer_set_prop", "summer_connect_signal"];
|
|
74
74
|
readonly testScenario: "Create a HUD CanvasLayer with labels, a ProgressBar, and a connected Button signal.";
|
|
@@ -76,7 +76,7 @@ export declare const SKILL_REGISTRY: readonly [{
|
|
|
76
76
|
readonly name: "asset-strategy";
|
|
77
77
|
readonly category: "asset-pipeline";
|
|
78
78
|
readonly public: true;
|
|
79
|
-
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
|
|
79
|
+
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "opencode"];
|
|
80
80
|
readonly recommended: true;
|
|
81
81
|
readonly requiresMcpTools: readonly ["summer_search_assets", "summer_import_asset", "summer_import_from_url", "summer_generate_image", "summer_generate_3d", "summer_generate_audio"];
|
|
82
82
|
readonly testScenario: "Choose library, generated, or primitive assets for a small level and import one asset into the project.";
|
|
@@ -84,7 +84,7 @@ export declare const SKILL_REGISTRY: readonly [{
|
|
|
84
84
|
readonly name: "make-game";
|
|
85
85
|
readonly category: "scene-and-project";
|
|
86
86
|
readonly public: true;
|
|
87
|
-
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
|
|
87
|
+
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "opencode"];
|
|
88
88
|
readonly recommended: true;
|
|
89
89
|
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
90
|
readonly testScenario: "Build one narrow playable prototype from requirements through scene setup, host-edited scripts, and diagnostics.";
|
|
@@ -92,7 +92,7 @@ export declare const SKILL_REGISTRY: readonly [{
|
|
|
92
92
|
readonly name: "brainstorm-game";
|
|
93
93
|
readonly category: "scene-and-project";
|
|
94
94
|
readonly public: true;
|
|
95
|
-
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
|
|
95
|
+
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "opencode"];
|
|
96
96
|
readonly recommended: true;
|
|
97
97
|
readonly requiresMcpTools: readonly ["summer_get_project_context", "summer_get_scene_tree"];
|
|
98
98
|
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 +100,7 @@ export declare const SKILL_REGISTRY: readonly [{
|
|
|
100
100
|
readonly name: "new-project";
|
|
101
101
|
readonly category: "scene-and-project";
|
|
102
102
|
readonly public: true;
|
|
103
|
-
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
|
|
103
|
+
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "opencode"];
|
|
104
104
|
readonly recommended: true;
|
|
105
105
|
readonly requiresMcpTools: readonly ["summer_get_project_context"];
|
|
106
106
|
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 +108,7 @@ export declare const SKILL_REGISTRY: readonly [{
|
|
|
108
108
|
readonly name: "browse-templates";
|
|
109
109
|
readonly category: "scene-and-project";
|
|
110
110
|
readonly public: true;
|
|
111
|
-
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
|
|
111
|
+
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "opencode"];
|
|
112
112
|
readonly recommended: true;
|
|
113
113
|
readonly requiresMcpTools: readonly ["summer_get_project_context"];
|
|
114
114
|
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 +116,7 @@ export declare const SKILL_REGISTRY: readonly [{
|
|
|
116
116
|
readonly name: "design-mechanic";
|
|
117
117
|
readonly category: "gameplay-mechanics";
|
|
118
118
|
readonly public: true;
|
|
119
|
-
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
|
|
119
|
+
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "opencode"];
|
|
120
120
|
readonly recommended: true;
|
|
121
121
|
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
122
|
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 +124,7 @@ export declare const SKILL_REGISTRY: readonly [{
|
|
|
124
124
|
readonly name: "design-level";
|
|
125
125
|
readonly category: "level-design";
|
|
126
126
|
readonly public: true;
|
|
127
|
-
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
|
|
127
|
+
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "opencode"];
|
|
128
128
|
readonly recommended: true;
|
|
129
129
|
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
130
|
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 +132,7 @@ export declare const SKILL_REGISTRY: readonly [{
|
|
|
132
132
|
readonly name: "art-direction";
|
|
133
133
|
readonly category: "rendering-and-lighting";
|
|
134
134
|
readonly public: true;
|
|
135
|
-
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
|
|
135
|
+
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "opencode"];
|
|
136
136
|
readonly recommended: true;
|
|
137
137
|
readonly requiresMcpTools: readonly ["summer_get_project_context", "summer_project_setting", "summer_inspect_node", "summer_set_prop"];
|
|
138
138
|
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,15 +140,15 @@ export declare const SKILL_REGISTRY: readonly [{
|
|
|
140
140
|
readonly name: "audio-direction";
|
|
141
141
|
readonly category: "audio";
|
|
142
142
|
readonly public: true;
|
|
143
|
-
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
|
|
143
|
+
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "opencode"];
|
|
144
144
|
readonly recommended: true;
|
|
145
145
|
readonly requiresMcpTools: readonly ["summer_get_project_context", "summer_get_scene_tree", "summer_inspect_node", "summer_add_node", "summer_project_setting", "summer_generate_audio"];
|
|
146
146
|
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.";
|
|
147
147
|
}, {
|
|
148
|
-
readonly name: "
|
|
148
|
+
readonly name: "game-feel";
|
|
149
149
|
readonly category: "visual-effects";
|
|
150
150
|
readonly public: true;
|
|
151
|
-
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
|
|
151
|
+
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "opencode"];
|
|
152
152
|
readonly recommended: true;
|
|
153
153
|
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
154
|
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 +156,7 @@ export declare const SKILL_REGISTRY: readonly [{
|
|
|
156
156
|
readonly name: "tune-performance";
|
|
157
157
|
readonly category: "performance";
|
|
158
158
|
readonly public: true;
|
|
159
|
-
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
|
|
159
|
+
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "opencode"];
|
|
160
160
|
readonly recommended: true;
|
|
161
161
|
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
162
|
readonly testScenario: "Profile a slow forest scene (~22 fps), identify the rendering hotspot via diagnostics, propose a fix, verify the metric moved.";
|
|
@@ -164,7 +164,7 @@ export declare const SKILL_REGISTRY: readonly [{
|
|
|
164
164
|
readonly name: "design-npc";
|
|
165
165
|
readonly category: "ai-and-npcs";
|
|
166
166
|
readonly public: true;
|
|
167
|
-
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
|
|
167
|
+
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "opencode"];
|
|
168
168
|
readonly recommended: true;
|
|
169
169
|
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
170
|
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 +172,7 @@ export declare const SKILL_REGISTRY: readonly [{
|
|
|
172
172
|
readonly name: "setup-multiplayer";
|
|
173
173
|
readonly category: "multiplayer-and-networking";
|
|
174
174
|
readonly public: true;
|
|
175
|
-
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
|
|
175
|
+
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "opencode"];
|
|
176
176
|
readonly recommended: true;
|
|
177
177
|
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
178
|
readonly testScenario: "Add co-op LAN multiplayer (2-4 players) using MultiplayerAPI + MultiplayerSpawner + MultiplayerSynchronizer + ENet; lock authority model up front.";
|
|
@@ -180,7 +180,7 @@ export declare const SKILL_REGISTRY: readonly [{
|
|
|
180
180
|
readonly name: "peer-to-peer-multiplayer";
|
|
181
181
|
readonly category: "multiplayer-and-networking";
|
|
182
182
|
readonly public: true;
|
|
183
|
-
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
|
|
183
|
+
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "opencode"];
|
|
184
184
|
readonly recommended: true;
|
|
185
185
|
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
186
|
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 +188,7 @@ export declare const SKILL_REGISTRY: readonly [{
|
|
|
188
188
|
readonly name: "host-authoritative-state";
|
|
189
189
|
readonly category: "multiplayer-and-networking";
|
|
190
190
|
readonly public: true;
|
|
191
|
-
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
|
|
191
|
+
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "opencode"];
|
|
192
192
|
readonly recommended: true;
|
|
193
193
|
readonly requiresMcpTools: readonly ["summer_get_scene_tree", "summer_inspect_node", "summer_save_scene", "summer_get_script_errors"];
|
|
194
194
|
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,8 +196,272 @@ export declare const SKILL_REGISTRY: readonly [{
|
|
|
196
196
|
readonly name: "export-and-ship";
|
|
197
197
|
readonly category: "deployment";
|
|
198
198
|
readonly public: true;
|
|
199
|
-
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
|
|
199
|
+
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "opencode"];
|
|
200
200
|
readonly recommended: true;
|
|
201
201
|
readonly requiresMcpTools: readonly ["summer_get_scene_tree", "summer_inspect_node", "summer_project_setting", "summer_get_console", "summer_get_diagnostics"];
|
|
202
202
|
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.";
|
|
203
|
+
}, {
|
|
204
|
+
readonly name: "concept-art";
|
|
205
|
+
readonly category: "2d-assets";
|
|
206
|
+
readonly public: true;
|
|
207
|
+
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "opencode"];
|
|
208
|
+
readonly recommended: true;
|
|
209
|
+
readonly requiresMcpTools: readonly ["summer_generate_image", "summer_search_assets", "summer_import_from_url"];
|
|
210
|
+
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.";
|
|
211
|
+
}, {
|
|
212
|
+
readonly name: "character-portrait";
|
|
213
|
+
readonly category: "2d-assets";
|
|
214
|
+
readonly public: true;
|
|
215
|
+
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "opencode"];
|
|
216
|
+
readonly recommended: true;
|
|
217
|
+
readonly requiresMcpTools: readonly ["summer_generate_image", "summer_search_assets", "summer_import_from_url"];
|
|
218
|
+
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.";
|
|
219
|
+
}, {
|
|
220
|
+
readonly name: "pixel-art";
|
|
221
|
+
readonly category: "2d-assets";
|
|
222
|
+
readonly public: true;
|
|
223
|
+
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "opencode"];
|
|
224
|
+
readonly recommended: true;
|
|
225
|
+
readonly requiresMcpTools: readonly ["summer_generate_image", "summer_search_assets", "summer_import_from_url"];
|
|
226
|
+
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/.";
|
|
227
|
+
}, {
|
|
228
|
+
readonly name: "ui-graphics";
|
|
229
|
+
readonly category: "2d-assets";
|
|
230
|
+
readonly public: true;
|
|
231
|
+
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "opencode"];
|
|
232
|
+
readonly recommended: false;
|
|
233
|
+
readonly requiresMcpTools: readonly ["summer_generate_image", "summer_import_from_url", "summer_add_node", "summer_set_prop"];
|
|
234
|
+
readonly testScenario: "User asks for an inventory grid icon set — skill generates flat-design transparent PNGs, sets up AtlasTexture import, wires into TextureRect / NinePatchRect.";
|
|
235
|
+
}, {
|
|
236
|
+
readonly name: "tileable-texture";
|
|
237
|
+
readonly category: "2d-assets";
|
|
238
|
+
readonly public: true;
|
|
239
|
+
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "opencode"];
|
|
240
|
+
readonly recommended: false;
|
|
241
|
+
readonly requiresMcpTools: readonly ["summer_generate_image", "summer_import_from_url", "summer_set_resource_property"];
|
|
242
|
+
readonly testScenario: "User asks for a 'seamless brick wall texture' — skill generates with seamless prompt suffix, applies to PlaneMesh + StandardMaterial3D with uv1_scale tiled.";
|
|
243
|
+
}, {
|
|
244
|
+
readonly name: "sprite-sheet";
|
|
245
|
+
readonly category: "2d-assets";
|
|
246
|
+
readonly public: true;
|
|
247
|
+
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "opencode"];
|
|
248
|
+
readonly recommended: false;
|
|
249
|
+
readonly requiresMcpTools: readonly ["summer_generate_image", "summer_import_from_url", "summer_set_resource_property", "summer_add_node", "summer_set_prop"];
|
|
250
|
+
readonly testScenario: "User requests a '4-frame walk cycle for the goblin' — skill generates per-frame at locked anchor, builds SpriteFrames resource, wires AnimatedSprite2D.";
|
|
251
|
+
}, {
|
|
252
|
+
readonly name: "skybox-panorama";
|
|
253
|
+
readonly category: "2d-assets";
|
|
254
|
+
readonly public: true;
|
|
255
|
+
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "opencode"];
|
|
256
|
+
readonly recommended: false;
|
|
257
|
+
readonly requiresMcpTools: readonly ["summer_generate_image", "summer_import_from_url", "summer_set_resource_property"];
|
|
258
|
+
readonly testScenario: "User asks for a 'sunset desert skybox' — skill generates equirectangular 2:1 panorama, wires PanoramaSkyMaterial on WorldEnvironment.";
|
|
259
|
+
}, {
|
|
260
|
+
readonly name: "prop-model";
|
|
261
|
+
readonly category: "3d-assets";
|
|
262
|
+
readonly public: true;
|
|
263
|
+
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "opencode"];
|
|
264
|
+
readonly recommended: true;
|
|
265
|
+
readonly requiresMcpTools: readonly ["summer_generate_3d", "summer_search_assets", "summer_import_from_url", "summer_add_node", "summer_set_prop"];
|
|
266
|
+
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.";
|
|
267
|
+
}, {
|
|
268
|
+
readonly name: "character-model";
|
|
269
|
+
readonly category: "3d-assets";
|
|
270
|
+
readonly public: true;
|
|
271
|
+
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "opencode"];
|
|
272
|
+
readonly recommended: true;
|
|
273
|
+
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
|
+
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.";
|
|
275
|
+
}, {
|
|
276
|
+
readonly name: "environment-kit";
|
|
277
|
+
readonly category: "3d-assets";
|
|
278
|
+
readonly public: true;
|
|
279
|
+
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "opencode"];
|
|
280
|
+
readonly recommended: false;
|
|
281
|
+
readonly requiresMcpTools: readonly ["summer_generate_3d", "summer_search_assets", "summer_import_from_url", "summer_add_node", "summer_set_prop", "summer_save_scene"];
|
|
282
|
+
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.";
|
|
283
|
+
}, {
|
|
284
|
+
readonly name: "vehicle-model";
|
|
285
|
+
readonly category: "3d-assets";
|
|
286
|
+
readonly public: true;
|
|
287
|
+
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "opencode"];
|
|
288
|
+
readonly recommended: false;
|
|
289
|
+
readonly requiresMcpTools: readonly ["summer_generate_3d", "summer_search_assets", "summer_import_from_url", "summer_add_node", "summer_set_prop"];
|
|
290
|
+
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.";
|
|
291
|
+
}, {
|
|
292
|
+
readonly name: "organic-model";
|
|
293
|
+
readonly category: "3d-assets";
|
|
294
|
+
readonly public: true;
|
|
295
|
+
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "opencode"];
|
|
296
|
+
readonly recommended: false;
|
|
297
|
+
readonly requiresMcpTools: readonly ["summer_generate_3d", "summer_search_assets", "summer_import_from_url", "summer_add_node", "summer_set_prop"];
|
|
298
|
+
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.";
|
|
299
|
+
}, {
|
|
300
|
+
readonly name: "generate-motion";
|
|
301
|
+
readonly category: "animation";
|
|
302
|
+
readonly public: true;
|
|
303
|
+
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "opencode"];
|
|
304
|
+
readonly recommended: true;
|
|
305
|
+
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
|
+
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.";
|
|
307
|
+
}, {
|
|
308
|
+
readonly name: "retarget";
|
|
309
|
+
readonly category: "animation";
|
|
310
|
+
readonly public: true;
|
|
311
|
+
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "opencode"];
|
|
312
|
+
readonly recommended: false;
|
|
313
|
+
readonly requiresMcpTools: readonly ["summer_generate_motion", "summer_search_assets", "summer_inspect_resource", "summer_set_resource_property", "summer_save_scene"];
|
|
314
|
+
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.";
|
|
315
|
+
}, {
|
|
316
|
+
readonly name: "animation-tree";
|
|
317
|
+
readonly category: "animation";
|
|
318
|
+
readonly public: true;
|
|
319
|
+
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "opencode"];
|
|
320
|
+
readonly recommended: false;
|
|
321
|
+
readonly requiresMcpTools: readonly ["summer_get_scene_tree", "summer_inspect_node", "summer_add_node", "summer_set_prop", "summer_set_resource_property", "summer_save_scene"];
|
|
322
|
+
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.";
|
|
323
|
+
}, {
|
|
324
|
+
readonly name: "procedural-animation";
|
|
325
|
+
readonly category: "animation";
|
|
326
|
+
readonly public: true;
|
|
327
|
+
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "opencode"];
|
|
328
|
+
readonly recommended: false;
|
|
329
|
+
readonly requiresMcpTools: readonly ["summer_get_scene_tree", "summer_inspect_node", "summer_add_node", "summer_set_prop", "summer_save_scene"];
|
|
330
|
+
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.";
|
|
331
|
+
}, {
|
|
332
|
+
readonly name: "facial-and-lipsync";
|
|
333
|
+
readonly category: "animation";
|
|
334
|
+
readonly public: true;
|
|
335
|
+
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "opencode"];
|
|
336
|
+
readonly recommended: false;
|
|
337
|
+
readonly requiresMcpTools: readonly ["summer_inspect_resource", "summer_set_resource_property", "summer_save_scene", "summer_generate_audio"];
|
|
338
|
+
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.";
|
|
339
|
+
}, {
|
|
340
|
+
readonly name: "sound-effect";
|
|
341
|
+
readonly category: "audio";
|
|
342
|
+
readonly public: true;
|
|
343
|
+
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "opencode"];
|
|
344
|
+
readonly recommended: true;
|
|
345
|
+
readonly requiresMcpTools: readonly ["summer_generate_audio", "summer_search_assets", "summer_import_from_url", "summer_add_node", "summer_set_prop"];
|
|
346
|
+
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.";
|
|
347
|
+
}, {
|
|
348
|
+
readonly name: "music-track";
|
|
349
|
+
readonly category: "audio";
|
|
350
|
+
readonly public: true;
|
|
351
|
+
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "opencode"];
|
|
352
|
+
readonly recommended: true;
|
|
353
|
+
readonly requiresMcpTools: readonly ["summer_generate_audio", "summer_search_assets", "summer_import_from_url", "summer_add_node", "summer_set_prop"];
|
|
354
|
+
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.";
|
|
355
|
+
}, {
|
|
356
|
+
readonly name: "ambient-bed";
|
|
357
|
+
readonly category: "audio";
|
|
358
|
+
readonly public: true;
|
|
359
|
+
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "opencode"];
|
|
360
|
+
readonly recommended: false;
|
|
361
|
+
readonly requiresMcpTools: readonly ["summer_generate_audio", "summer_search_assets", "summer_import_from_url", "summer_add_node", "summer_set_prop"];
|
|
362
|
+
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.";
|
|
363
|
+
}, {
|
|
364
|
+
readonly name: "voice-line";
|
|
365
|
+
readonly category: "audio";
|
|
366
|
+
readonly public: true;
|
|
367
|
+
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "opencode"];
|
|
368
|
+
readonly recommended: true;
|
|
369
|
+
readonly requiresMcpTools: readonly ["summer_generate_audio", "summer_search_assets", "summer_import_from_url", "summer_add_node", "summer_set_prop"];
|
|
370
|
+
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.";
|
|
371
|
+
}, {
|
|
372
|
+
readonly name: "adaptive-music";
|
|
373
|
+
readonly category: "audio";
|
|
374
|
+
readonly public: true;
|
|
375
|
+
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "opencode"];
|
|
376
|
+
readonly recommended: false;
|
|
377
|
+
readonly requiresMcpTools: readonly ["summer_generate_audio", "summer_search_assets", "summer_inspect_node", "summer_add_node", "summer_set_prop", "summer_set_resource_property"];
|
|
378
|
+
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.";
|
|
379
|
+
}, {
|
|
380
|
+
readonly name: "cinematic-cutscene";
|
|
381
|
+
readonly category: "video";
|
|
382
|
+
readonly public: true;
|
|
383
|
+
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "opencode"];
|
|
384
|
+
readonly recommended: true;
|
|
385
|
+
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
|
+
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.";
|
|
387
|
+
}, {
|
|
388
|
+
readonly name: "trailer-shot";
|
|
389
|
+
readonly category: "video";
|
|
390
|
+
readonly public: true;
|
|
391
|
+
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "opencode"];
|
|
392
|
+
readonly recommended: false;
|
|
393
|
+
readonly requiresMcpTools: readonly ["summer_generate_video", "summer_generate_image", "summer_search_assets", "summer_import_from_url"];
|
|
394
|
+
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/.";
|
|
395
|
+
}, {
|
|
396
|
+
readonly name: "animated-loop";
|
|
397
|
+
readonly category: "video";
|
|
398
|
+
readonly public: true;
|
|
399
|
+
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "opencode"];
|
|
400
|
+
readonly recommended: false;
|
|
401
|
+
readonly requiresMcpTools: readonly ["summer_generate_video", "summer_search_assets", "summer_import_from_url", "summer_add_node", "summer_set_prop"];
|
|
402
|
+
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.";
|
|
403
|
+
}, {
|
|
404
|
+
readonly name: "fire";
|
|
405
|
+
readonly category: "visual-effects";
|
|
406
|
+
readonly public: true;
|
|
407
|
+
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "opencode"];
|
|
408
|
+
readonly recommended: true;
|
|
409
|
+
readonly requiresMcpTools: readonly ["summer_add_node", "summer_set_prop", "summer_set_resource_property", "summer_inspect_node", "summer_save_scene"];
|
|
410
|
+
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.";
|
|
411
|
+
}, {
|
|
412
|
+
readonly name: "muzzle-flash";
|
|
413
|
+
readonly category: "visual-effects";
|
|
414
|
+
readonly public: true;
|
|
415
|
+
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "opencode"];
|
|
416
|
+
readonly recommended: true;
|
|
417
|
+
readonly requiresMcpTools: readonly ["summer_add_node", "summer_set_prop", "summer_set_resource_property", "summer_inspect_node", "summer_save_scene"];
|
|
418
|
+
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.";
|
|
419
|
+
}, {
|
|
420
|
+
readonly name: "water-ripple";
|
|
421
|
+
readonly category: "visual-effects";
|
|
422
|
+
readonly public: true;
|
|
423
|
+
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "opencode"];
|
|
424
|
+
readonly recommended: false;
|
|
425
|
+
readonly requiresMcpTools: readonly ["summer_add_node", "summer_set_prop", "summer_set_resource_property", "summer_inspect_node", "summer_save_scene"];
|
|
426
|
+
readonly testScenario: "User wants 'water ripples when objects splash' — skill creates MeshInstance3D plane with custom water shader, exposes add_ripple(position) API.";
|
|
427
|
+
}, {
|
|
428
|
+
readonly name: "lightning";
|
|
429
|
+
readonly category: "visual-effects";
|
|
430
|
+
readonly public: true;
|
|
431
|
+
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "opencode"];
|
|
432
|
+
readonly recommended: false;
|
|
433
|
+
readonly requiresMcpTools: readonly ["summer_add_node", "summer_set_prop", "summer_set_resource_property", "summer_inspect_node", "summer_save_scene", "summer_connect_signal"];
|
|
434
|
+
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.";
|
|
435
|
+
}, {
|
|
436
|
+
readonly name: "dissolve";
|
|
437
|
+
readonly category: "visual-effects";
|
|
438
|
+
readonly public: true;
|
|
439
|
+
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "opencode"];
|
|
440
|
+
readonly recommended: false;
|
|
441
|
+
readonly requiresMcpTools: readonly ["summer_add_node", "summer_set_prop", "summer_set_resource_property", "summer_inspect_node", "summer_save_scene"];
|
|
442
|
+
readonly testScenario: "User wants 'an enemy that dissolves on death' — skill writes dissolve.gdshader override + dissolve_object(target, duration) controller, animates threshold uniform.";
|
|
443
|
+
}, {
|
|
444
|
+
readonly name: "smoke";
|
|
445
|
+
readonly category: "visual-effects";
|
|
446
|
+
readonly public: true;
|
|
447
|
+
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "opencode"];
|
|
448
|
+
readonly recommended: false;
|
|
449
|
+
readonly requiresMcpTools: readonly ["summer_add_node", "summer_set_prop", "summer_set_resource_property", "summer_inspect_node", "summer_save_scene"];
|
|
450
|
+
readonly testScenario: "User wants 'smoke from a burning torch' — skill creates GPUParticles3D + smoke shader using shared FBM noise, wires wind direction parameter.";
|
|
451
|
+
}, {
|
|
452
|
+
readonly name: "hit-spark";
|
|
453
|
+
readonly category: "visual-effects";
|
|
454
|
+
readonly public: true;
|
|
455
|
+
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "opencode"];
|
|
456
|
+
readonly recommended: false;
|
|
457
|
+
readonly requiresMcpTools: readonly ["summer_add_node", "summer_set_prop", "summer_set_resource_property", "summer_inspect_node", "summer_save_scene"];
|
|
458
|
+
readonly testScenario: "User wants 'sparks when a sword hits metal' — skill spawns one-shot GPUParticles3D with additive billboard material, orients to surface normal.";
|
|
459
|
+
}, {
|
|
460
|
+
readonly name: "magic-glow";
|
|
461
|
+
readonly category: "visual-effects";
|
|
462
|
+
readonly public: true;
|
|
463
|
+
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf", "cline", "roo-code", "gemini", "opencode"];
|
|
464
|
+
readonly recommended: false;
|
|
465
|
+
readonly requiresMcpTools: readonly ["summer_add_node", "summer_set_prop", "summer_set_resource_property", "summer_inspect_node", "summer_save_scene"];
|
|
466
|
+
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.";
|
|
203
467
|
}];
|