summer-engine 1.3.2 → 1.4.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/.claude-plugin/plugin.json +59 -0
- package/.codex-plugin/plugin.json +38 -0
- package/.cursor-plugin/plugin.json +42 -0
- package/.mcp.json +8 -0
- package/.opencode/plugins/summer.js +49 -0
- package/README.md +13 -0
- package/dist/lib/skills-registry.d.ts +80 -0
- package/dist/lib/skills-registry.js +172 -0
- package/gemini-extension.json +21 -0
- package/hooks/hooks-cursor.json +21 -0
- package/hooks/hooks.json +31 -0
- package/hooks/pre-commit-doctor.sh +123 -0
- package/hooks/run-hook.cmd +23 -0
- package/hooks/session-start.sh +120 -0
- package/marketplace.json +24 -0
- package/package.json +9 -1
- package/skills/_tests/specs/peer-to-peer-multiplayer.md +99 -0
- package/skills/asset-pipeline/asset-strategy/SKILL.md +8 -0
- package/skills/catalog.yaml +82 -0
- package/skills/character-controllers/fps-controller/SKILL.md +27 -0
- package/skills/multiplayer-and-networking/peer-to-peer-multiplayer/SKILL.md +378 -0
- package/skills/rendering-and-lighting/3d-lighting/SKILL.md +20 -0
- package/skills/scene-and-project/make-game/SKILL.md +10 -0
- package/skills/scene-and-project/scene-composition/SKILL.md +8 -0
- package/skills/ui-and-ux/ui-basics/SKILL.md +28 -0
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json",
|
|
3
|
+
"name": "summer",
|
|
4
|
+
"version": "1.4.0",
|
|
5
|
+
"description": "AI game-dev studio for Godot/Summer projects: 12 workflow skills + 7 specialists + lifecycle hooks + MCP bridge to the local Summer Engine.",
|
|
6
|
+
"author": {
|
|
7
|
+
"name": "Summer Engine",
|
|
8
|
+
"email": "founders@summerengine.com",
|
|
9
|
+
"url": "https://summerengine.com"
|
|
10
|
+
},
|
|
11
|
+
"homepage": "https://summerengine.com",
|
|
12
|
+
"repository": "https://github.com/SummerEngine/summer-engine-cli",
|
|
13
|
+
"license": "MIT",
|
|
14
|
+
"keywords": [
|
|
15
|
+
"game-dev",
|
|
16
|
+
"godot",
|
|
17
|
+
"summer-engine",
|
|
18
|
+
"ai-game-engine",
|
|
19
|
+
"skills",
|
|
20
|
+
"workflow",
|
|
21
|
+
"scene-design",
|
|
22
|
+
"level-design",
|
|
23
|
+
"art-direction",
|
|
24
|
+
"vfx",
|
|
25
|
+
"multiplayer",
|
|
26
|
+
"performance"
|
|
27
|
+
],
|
|
28
|
+
"skills": [
|
|
29
|
+
"./skills/scene-and-project/brainstorm-game/",
|
|
30
|
+
"./skills/debugging/debug/",
|
|
31
|
+
"./skills/scene-and-project/play/",
|
|
32
|
+
"./skills/gameplay-mechanics/design-mechanic/",
|
|
33
|
+
"./skills/level-design/design-level/",
|
|
34
|
+
"./skills/rendering-and-lighting/art-direction/",
|
|
35
|
+
"./skills/audio/audio-direction/",
|
|
36
|
+
"./skills/visual-effects/vfx/",
|
|
37
|
+
"./skills/performance/tune-performance/",
|
|
38
|
+
"./skills/ai-and-npcs/design-npc/",
|
|
39
|
+
"./skills/multiplayer-and-networking/setup-multiplayer/",
|
|
40
|
+
"./skills/deployment/export-and-ship/",
|
|
41
|
+
"./skills/character-controllers/fps-controller/",
|
|
42
|
+
"./skills/rendering-and-lighting/3d-lighting/",
|
|
43
|
+
"./skills/scripting/gdscript-patterns/",
|
|
44
|
+
"./skills/scene-and-project/scene-composition/",
|
|
45
|
+
"./skills/ui/ui-basics/",
|
|
46
|
+
"./skills/assets/asset-strategy/",
|
|
47
|
+
"./skills/scene-and-project/make-game/"
|
|
48
|
+
],
|
|
49
|
+
"hooks": "./hooks/hooks.json",
|
|
50
|
+
"mcpServers": "./.mcp.json",
|
|
51
|
+
"userConfig": {
|
|
52
|
+
"enable_pre_commit_doctor": {
|
|
53
|
+
"type": "boolean",
|
|
54
|
+
"title": "Run summer doctor before commits",
|
|
55
|
+
"description": "Block git commits when the Summer Engine setup has FAIL diagnostics. Off by default.",
|
|
56
|
+
"default": false
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "summer",
|
|
3
|
+
"version": "1.4.0",
|
|
4
|
+
"description": "AI game-dev studio for Godot: 19 skills, MCP bridge to the local Summer Engine, lifecycle hooks. Build games by talking.",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "Summer Engine",
|
|
7
|
+
"email": "founders@summerengine.com",
|
|
8
|
+
"url": "https://summerengine.com"
|
|
9
|
+
},
|
|
10
|
+
"homepage": "https://summerengine.com",
|
|
11
|
+
"repository": "https://github.com/SummerEngine/summer-engine-cli",
|
|
12
|
+
"license": "MIT",
|
|
13
|
+
"keywords": [
|
|
14
|
+
"game-dev", "godot", "ai-game-engine", "skills",
|
|
15
|
+
"workflow", "level-design", "vfx", "multiplayer"
|
|
16
|
+
],
|
|
17
|
+
"skills": "./skills/",
|
|
18
|
+
"mcpServers": "./.mcp.json",
|
|
19
|
+
"hooks": "./hooks/hooks.json",
|
|
20
|
+
"interface": {
|
|
21
|
+
"displayName": "Summer Engine",
|
|
22
|
+
"shortDescription": "Build games by talking. AI game-dev studio for Godot.",
|
|
23
|
+
"longDescription": "Summer Engine turns Codex into a game-dev studio. 12 workflow skills (brainstorm-game, design-mechanic, design-level, art-direction, audio-direction, vfx, tune-performance, design-npc, setup-multiplayer, export-and-ship, debug, play) + 7 auto-trigger specialists. The MCP bridge talks to the local Summer Engine fork of Godot for scene mutation, asset import, render, play, diagnostics. Session-start orients the session. Pre-commit doctor (opt-in) blocks bad commits.",
|
|
24
|
+
"developerName": "Summer Engine",
|
|
25
|
+
"category": "Coding",
|
|
26
|
+
"capabilities": ["Interactive", "Read", "Write"],
|
|
27
|
+
"websiteURL": "https://summerengine.com",
|
|
28
|
+
"privacyPolicyURL": "https://summerengine.com/privacy",
|
|
29
|
+
"termsOfServiceURL": "https://summerengine.com/terms",
|
|
30
|
+
"defaultPrompt": [
|
|
31
|
+
"I want to make a game.",
|
|
32
|
+
"/summer:brainstorm-game",
|
|
33
|
+
"Open this Godot project and tell me what's broken."
|
|
34
|
+
],
|
|
35
|
+
"brandColor": "#FF8F17",
|
|
36
|
+
"screenshots": []
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://cursor.com/schemas/cursor-plugin/plugin.json",
|
|
3
|
+
"name": "summer",
|
|
4
|
+
"displayName": "Summer Engine",
|
|
5
|
+
"version": "1.4.0",
|
|
6
|
+
"description": "AI game-dev studio for Godot: workflow skills, specialists, lifecycle hooks, and MCP bridge to the local Summer Engine.",
|
|
7
|
+
"author": { "name": "Summer Engine", "email": "founders@summerengine.com" },
|
|
8
|
+
"publisher": "summer-engine",
|
|
9
|
+
"homepage": "https://summerengine.com",
|
|
10
|
+
"repository": "https://github.com/SummerEngine/summer-engine-cli",
|
|
11
|
+
"license": "MIT",
|
|
12
|
+
"category": "developer-tools",
|
|
13
|
+
"keywords": [
|
|
14
|
+
"game-dev", "godot", "ai-game-engine", "skills",
|
|
15
|
+
"workflow", "level-design", "art-direction", "vfx",
|
|
16
|
+
"multiplayer", "performance"
|
|
17
|
+
],
|
|
18
|
+
"tags": ["game-dev", "ai", "godot", "creative", "design"],
|
|
19
|
+
"skills": [
|
|
20
|
+
"./skills/scene-and-project/brainstorm-game/",
|
|
21
|
+
"./skills/debugging/debug/",
|
|
22
|
+
"./skills/scene-and-project/play/",
|
|
23
|
+
"./skills/gameplay-mechanics/design-mechanic/",
|
|
24
|
+
"./skills/level-design/design-level/",
|
|
25
|
+
"./skills/rendering-and-lighting/art-direction/",
|
|
26
|
+
"./skills/audio/audio-direction/",
|
|
27
|
+
"./skills/visual-effects/vfx/",
|
|
28
|
+
"./skills/performance/tune-performance/",
|
|
29
|
+
"./skills/ai-and-npcs/design-npc/",
|
|
30
|
+
"./skills/multiplayer-and-networking/setup-multiplayer/",
|
|
31
|
+
"./skills/deployment/export-and-ship/",
|
|
32
|
+
"./skills/character-controllers/fps-controller/",
|
|
33
|
+
"./skills/rendering-and-lighting/3d-lighting/",
|
|
34
|
+
"./skills/scripting/gdscript-patterns/",
|
|
35
|
+
"./skills/scene-and-project/scene-composition/",
|
|
36
|
+
"./skills/ui/ui-basics/",
|
|
37
|
+
"./skills/assets/asset-strategy/",
|
|
38
|
+
"./skills/scene-and-project/make-game/"
|
|
39
|
+
],
|
|
40
|
+
"hooks": "./hooks/hooks-cursor.json",
|
|
41
|
+
"mcpServers": "./.mcp.json"
|
|
42
|
+
}
|
package/.mcp.json
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Summer Engine plugin for OpenCode.ai
|
|
3
|
+
*
|
|
4
|
+
* Registers the skills directory and injects a one-line session-start
|
|
5
|
+
* orientation into the first user message of each session.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import path from 'path';
|
|
9
|
+
import { fileURLToPath } from 'url';
|
|
10
|
+
|
|
11
|
+
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
12
|
+
const skillsDir = path.resolve(__dirname, '../../skills');
|
|
13
|
+
|
|
14
|
+
const ORIENTATION = `<EXTREMELY_IMPORTANT>
|
|
15
|
+
Summer Engine is loaded. 19 skills available under the summer plugin.
|
|
16
|
+
Workflow skills (slash menu): brainstorm-game, debug, play, design-mechanic, design-level, art-direction, audio-direction, vfx, tune-performance, design-npc, setup-multiplayer, export-and-ship.
|
|
17
|
+
Specialists auto-trigger: fps-controller, 3d-lighting, gdscript-patterns, scene-composition, ui-basics, asset-strategy, make-game.
|
|
18
|
+
Use OpenCode's native skill tool to load any of them. The summer-engine MCP server (npx summer-engine mcp) provides scene mutation, asset import, render, play, and diagnostics tools.
|
|
19
|
+
</EXTREMELY_IMPORTANT>`;
|
|
20
|
+
|
|
21
|
+
export const SummerPlugin = async ({ client, directory }) => {
|
|
22
|
+
return {
|
|
23
|
+
name: "summer",
|
|
24
|
+
|
|
25
|
+
config: async (config) => {
|
|
26
|
+
config.skills = config.skills || {};
|
|
27
|
+
config.skills.paths = config.skills.paths || [];
|
|
28
|
+
if (!config.skills.paths.includes(skillsDir)) {
|
|
29
|
+
config.skills.paths.push(skillsDir);
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
|
|
33
|
+
'experimental.chat.messages.transform': async (_input, output) => {
|
|
34
|
+
if (!output.messages?.length) return;
|
|
35
|
+
const firstUser = output.messages.find((m) => m.info.role === 'user');
|
|
36
|
+
if (!firstUser?.parts?.length) return;
|
|
37
|
+
if (firstUser.parts.some((p) => p.type === 'text' && p.text.includes('Summer Engine is loaded'))) return;
|
|
38
|
+
const ref = firstUser.parts[0];
|
|
39
|
+
firstUser.parts.unshift({ ...ref, type: 'text', text: ORIENTATION });
|
|
40
|
+
},
|
|
41
|
+
|
|
42
|
+
'session.created': async () => {
|
|
43
|
+
// No-op placeholder; full session-start work runs in CLI hook on Claude Code.
|
|
44
|
+
// OpenCode users get the orientation via the message transform above.
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
export default SummerPlugin;
|
package/README.md
CHANGED
|
@@ -63,6 +63,19 @@ Or just describe what you want — the specialist skills (FPS controller, lighti
|
|
|
63
63
|
|
|
64
64
|
Supported agents: `codex`, `claude-code`, `cursor`, `windsurf`. Supported scopes: `user` (default), `project`.
|
|
65
65
|
|
|
66
|
+
## Plugin install (Claude Code)
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
claude /plugin install summer-engine
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
That registers Summer as a plugin under the `summer:` namespace. Skills appear in the slash menu as `summer:brainstorm-game`, `summer:debug`, `summer:play`, etc. The plugin also bundles:
|
|
73
|
+
|
|
74
|
+
- A `summer-engine` MCP server (configured automatically — no manual `~/.claude.json` edit needed).
|
|
75
|
+
- Lifecycle hooks: a `session-start` greeter that detects Godot/Summer projects and reads `.summer/GameSoul.md`; a `pre-commit-doctor` hook (opt-in) that runs `summer doctor` before commits.
|
|
76
|
+
|
|
77
|
+
For Cursor, Codex, OpenCode, and Gemini, see [docs/CURSOR.md](docs/CURSOR.md), [docs/CODEX.md](docs/CODEX.md), and the manifests at `.cursor-plugin/`, `.codex-plugin/`, `.opencode/`, `gemini-extension.json` respectively.
|
|
78
|
+
|
|
66
79
|
## MCP Integration
|
|
67
80
|
|
|
68
81
|
`summer setup <agent>` writes the right config in the right place. If you need to do it by hand:
|
|
@@ -88,4 +88,84 @@ export declare const SKILL_REGISTRY: readonly [{
|
|
|
88
88
|
readonly recommended: false;
|
|
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.";
|
|
91
|
+
}, {
|
|
92
|
+
readonly name: "brainstorm-game";
|
|
93
|
+
readonly category: "scene-and-project";
|
|
94
|
+
readonly public: true;
|
|
95
|
+
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
|
|
96
|
+
readonly recommended: true;
|
|
97
|
+
readonly requiresMcpTools: readonly ["summer_get_project_context", "summer_get_scene_tree"];
|
|
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.";
|
|
99
|
+
}, {
|
|
100
|
+
readonly name: "design-mechanic";
|
|
101
|
+
readonly category: "gameplay-mechanics";
|
|
102
|
+
readonly public: true;
|
|
103
|
+
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
|
|
104
|
+
readonly recommended: true;
|
|
105
|
+
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"];
|
|
106
|
+
readonly testScenario: "Design the double-jump mechanic end-to-end: input, response, feedback, failure modes, depth, then drop a GDScript stub and node sketch.";
|
|
107
|
+
}, {
|
|
108
|
+
readonly name: "design-level";
|
|
109
|
+
readonly category: "level-design";
|
|
110
|
+
readonly public: true;
|
|
111
|
+
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
|
|
112
|
+
readonly recommended: true;
|
|
113
|
+
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"];
|
|
114
|
+
readonly testScenario: "Design level 1, a 5-minute combat encounter that teaches parry, and produce a node-tree skeleton ready for summer_create_scene.";
|
|
115
|
+
}, {
|
|
116
|
+
readonly name: "art-direction";
|
|
117
|
+
readonly category: "rendering-and-lighting";
|
|
118
|
+
readonly public: true;
|
|
119
|
+
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
|
|
120
|
+
readonly recommended: true;
|
|
121
|
+
readonly requiresMcpTools: readonly ["summer_get_project_context", "summer_project_setting", "summer_inspect_node", "summer_set_prop"];
|
|
122
|
+
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.";
|
|
123
|
+
}, {
|
|
124
|
+
readonly name: "audio-direction";
|
|
125
|
+
readonly category: "audio";
|
|
126
|
+
readonly public: true;
|
|
127
|
+
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
|
|
128
|
+
readonly recommended: true;
|
|
129
|
+
readonly requiresMcpTools: readonly ["summer_get_project_context", "summer_get_scene_tree", "summer_inspect_node", "summer_add_node", "summer_project_setting", "summer_generate_audio"];
|
|
130
|
+
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.";
|
|
131
|
+
}, {
|
|
132
|
+
readonly name: "vfx";
|
|
133
|
+
readonly category: "visual-effects";
|
|
134
|
+
readonly public: true;
|
|
135
|
+
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
|
|
136
|
+
readonly recommended: true;
|
|
137
|
+
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"];
|
|
138
|
+
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.";
|
|
139
|
+
}, {
|
|
140
|
+
readonly name: "tune-performance";
|
|
141
|
+
readonly category: "performance";
|
|
142
|
+
readonly public: true;
|
|
143
|
+
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
|
|
144
|
+
readonly recommended: true;
|
|
145
|
+
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"];
|
|
146
|
+
readonly testScenario: "Profile a slow forest scene (~22 fps), identify the rendering hotspot via diagnostics, propose a fix, verify the metric moved.";
|
|
147
|
+
}, {
|
|
148
|
+
readonly name: "design-npc";
|
|
149
|
+
readonly category: "ai-and-npcs";
|
|
150
|
+
readonly public: true;
|
|
151
|
+
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
|
|
152
|
+
readonly recommended: true;
|
|
153
|
+
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"];
|
|
154
|
+
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.";
|
|
155
|
+
}, {
|
|
156
|
+
readonly name: "setup-multiplayer";
|
|
157
|
+
readonly category: "multiplayer-and-networking";
|
|
158
|
+
readonly public: true;
|
|
159
|
+
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
|
|
160
|
+
readonly recommended: true;
|
|
161
|
+
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"];
|
|
162
|
+
readonly testScenario: "Add co-op LAN multiplayer (2-4 players) using MultiplayerAPI + MultiplayerSpawner + MultiplayerSynchronizer + ENet; lock authority model up front.";
|
|
163
|
+
}, {
|
|
164
|
+
readonly name: "export-and-ship";
|
|
165
|
+
readonly category: "deployment";
|
|
166
|
+
readonly public: true;
|
|
167
|
+
readonly clients: readonly ["summer", "codex", "claude-code", "cursor", "windsurf"];
|
|
168
|
+
readonly recommended: true;
|
|
169
|
+
readonly requiresMcpTools: readonly ["summer_get_scene_tree", "summer_inspect_node", "summer_project_setting", "summer_get_console", "summer_get_diagnostics"];
|
|
170
|
+
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.";
|
|
91
171
|
}];
|
|
@@ -175,4 +175,176 @@ export const SKILL_REGISTRY = [
|
|
|
175
175
|
],
|
|
176
176
|
testScenario: "Build one narrow playable prototype from requirements through scene setup, host-edited scripts, and diagnostics.",
|
|
177
177
|
},
|
|
178
|
+
{
|
|
179
|
+
name: "brainstorm-game",
|
|
180
|
+
category: "scene-and-project",
|
|
181
|
+
public: true,
|
|
182
|
+
clients: ALL_CLIENTS,
|
|
183
|
+
recommended: true,
|
|
184
|
+
requiresMcpTools: [
|
|
185
|
+
"summer_get_project_context",
|
|
186
|
+
"summer_get_scene_tree",
|
|
187
|
+
],
|
|
188
|
+
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.",
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
name: "design-mechanic",
|
|
192
|
+
category: "gameplay-mechanics",
|
|
193
|
+
public: true,
|
|
194
|
+
clients: ALL_CLIENTS,
|
|
195
|
+
recommended: true,
|
|
196
|
+
requiresMcpTools: [
|
|
197
|
+
"summer_get_scene_tree",
|
|
198
|
+
"summer_inspect_node",
|
|
199
|
+
"summer_add_node",
|
|
200
|
+
"summer_set_prop",
|
|
201
|
+
"summer_input_map_bind",
|
|
202
|
+
"summer_save_scene",
|
|
203
|
+
"summer_get_script_errors",
|
|
204
|
+
],
|
|
205
|
+
testScenario: "Design the double-jump mechanic end-to-end: input, response, feedback, failure modes, depth, then drop a GDScript stub and node sketch.",
|
|
206
|
+
},
|
|
207
|
+
{
|
|
208
|
+
name: "design-level",
|
|
209
|
+
category: "level-design",
|
|
210
|
+
public: true,
|
|
211
|
+
clients: ALL_CLIENTS,
|
|
212
|
+
recommended: true,
|
|
213
|
+
requiresMcpTools: [
|
|
214
|
+
"summer_get_scene_tree",
|
|
215
|
+
"summer_create_scene",
|
|
216
|
+
"summer_open_scene",
|
|
217
|
+
"summer_add_node",
|
|
218
|
+
"summer_set_prop",
|
|
219
|
+
"summer_save_scene",
|
|
220
|
+
"summer_get_script_errors",
|
|
221
|
+
],
|
|
222
|
+
testScenario: "Design level 1, a 5-minute combat encounter that teaches parry, and produce a node-tree skeleton ready for summer_create_scene.",
|
|
223
|
+
},
|
|
224
|
+
{
|
|
225
|
+
name: "art-direction",
|
|
226
|
+
category: "rendering-and-lighting",
|
|
227
|
+
public: true,
|
|
228
|
+
clients: ALL_CLIENTS,
|
|
229
|
+
recommended: true,
|
|
230
|
+
requiresMcpTools: [
|
|
231
|
+
"summer_get_project_context",
|
|
232
|
+
"summer_project_setting",
|
|
233
|
+
"summer_inspect_node",
|
|
234
|
+
"summer_set_prop",
|
|
235
|
+
],
|
|
236
|
+
testScenario: "Define art direction for a cozy farming sim using Stardew Valley and Sable as references; write the bible to .summer/art-bible.md.",
|
|
237
|
+
},
|
|
238
|
+
{
|
|
239
|
+
name: "audio-direction",
|
|
240
|
+
category: "audio",
|
|
241
|
+
public: true,
|
|
242
|
+
clients: ALL_CLIENTS,
|
|
243
|
+
recommended: true,
|
|
244
|
+
requiresMcpTools: [
|
|
245
|
+
"summer_get_project_context",
|
|
246
|
+
"summer_get_scene_tree",
|
|
247
|
+
"summer_inspect_node",
|
|
248
|
+
"summer_add_node",
|
|
249
|
+
"summer_project_setting",
|
|
250
|
+
"summer_generate_audio",
|
|
251
|
+
],
|
|
252
|
+
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.",
|
|
253
|
+
},
|
|
254
|
+
{
|
|
255
|
+
name: "vfx",
|
|
256
|
+
category: "visual-effects",
|
|
257
|
+
public: true,
|
|
258
|
+
clients: ALL_CLIENTS,
|
|
259
|
+
recommended: true,
|
|
260
|
+
requiresMcpTools: [
|
|
261
|
+
"summer_get_scene_tree",
|
|
262
|
+
"summer_inspect_node",
|
|
263
|
+
"summer_inspect_resource",
|
|
264
|
+
"summer_add_node",
|
|
265
|
+
"summer_set_prop",
|
|
266
|
+
"summer_set_resource_property",
|
|
267
|
+
"summer_connect_signal",
|
|
268
|
+
"summer_save_scene",
|
|
269
|
+
"summer_get_script_errors",
|
|
270
|
+
"summer_play",
|
|
271
|
+
"summer_stop",
|
|
272
|
+
],
|
|
273
|
+
testScenario: "Add visible juice to flat combat hits in a 30-minute polish pass: hit flash, screen shake, particles, with verified scene state changes.",
|
|
274
|
+
},
|
|
275
|
+
{
|
|
276
|
+
name: "tune-performance",
|
|
277
|
+
category: "performance",
|
|
278
|
+
public: true,
|
|
279
|
+
clients: ALL_CLIENTS,
|
|
280
|
+
recommended: true,
|
|
281
|
+
requiresMcpTools: [
|
|
282
|
+
"summer_get_diagnostics",
|
|
283
|
+
"summer_get_console",
|
|
284
|
+
"summer_get_scene_tree",
|
|
285
|
+
"summer_inspect_node",
|
|
286
|
+
"summer_inspect_resource",
|
|
287
|
+
"summer_play",
|
|
288
|
+
"summer_stop",
|
|
289
|
+
"summer_is_running",
|
|
290
|
+
"summer_clear_console",
|
|
291
|
+
"summer_set_prop",
|
|
292
|
+
"summer_project_setting",
|
|
293
|
+
],
|
|
294
|
+
testScenario: "Profile a slow forest scene (~22 fps), identify the rendering hotspot via diagnostics, propose a fix, verify the metric moved.",
|
|
295
|
+
},
|
|
296
|
+
{
|
|
297
|
+
name: "design-npc",
|
|
298
|
+
category: "ai-and-npcs",
|
|
299
|
+
public: true,
|
|
300
|
+
clients: ALL_CLIENTS,
|
|
301
|
+
recommended: true,
|
|
302
|
+
requiresMcpTools: [
|
|
303
|
+
"summer_get_scene_tree",
|
|
304
|
+
"summer_inspect_node",
|
|
305
|
+
"summer_add_node",
|
|
306
|
+
"summer_set_prop",
|
|
307
|
+
"summer_set_resource_property",
|
|
308
|
+
"summer_connect_signal",
|
|
309
|
+
"summer_save_scene",
|
|
310
|
+
"summer_get_script_errors",
|
|
311
|
+
"summer_input_map_bind",
|
|
312
|
+
],
|
|
313
|
+
testScenario: "Design a basic patrol-and-chase enemy with perception, decision logic, tells, and defeat handling; output state-machine GDScript stub plus scene tree.",
|
|
314
|
+
},
|
|
315
|
+
{
|
|
316
|
+
name: "setup-multiplayer",
|
|
317
|
+
category: "multiplayer-and-networking",
|
|
318
|
+
public: true,
|
|
319
|
+
clients: ALL_CLIENTS,
|
|
320
|
+
recommended: true,
|
|
321
|
+
requiresMcpTools: [
|
|
322
|
+
"summer_get_scene_tree",
|
|
323
|
+
"summer_inspect_node",
|
|
324
|
+
"summer_add_node",
|
|
325
|
+
"summer_set_prop",
|
|
326
|
+
"summer_connect_signal",
|
|
327
|
+
"summer_save_scene",
|
|
328
|
+
"summer_get_script_errors",
|
|
329
|
+
"summer_project_setting",
|
|
330
|
+
"summer_play",
|
|
331
|
+
"summer_stop",
|
|
332
|
+
],
|
|
333
|
+
testScenario: "Add co-op LAN multiplayer (2-4 players) using MultiplayerAPI + MultiplayerSpawner + MultiplayerSynchronizer + ENet; lock authority model up front.",
|
|
334
|
+
},
|
|
335
|
+
{
|
|
336
|
+
name: "export-and-ship",
|
|
337
|
+
category: "deployment",
|
|
338
|
+
public: true,
|
|
339
|
+
clients: ALL_CLIENTS,
|
|
340
|
+
recommended: true,
|
|
341
|
+
requiresMcpTools: [
|
|
342
|
+
"summer_get_scene_tree",
|
|
343
|
+
"summer_inspect_node",
|
|
344
|
+
"summer_project_setting",
|
|
345
|
+
"summer_get_console",
|
|
346
|
+
"summer_get_diagnostics",
|
|
347
|
+
],
|
|
348
|
+
testScenario: "Run the Steam pre-flight checklist (Windows + Mac + Linux), validate icons/banners/screenshots/build config, and produce a release build only when green.",
|
|
349
|
+
},
|
|
178
350
|
];
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "summer",
|
|
3
|
+
"version": "1.4.0",
|
|
4
|
+
"description": "AI game-dev studio for Godot: MCP bridge to the local Summer Engine plus a context primer that teaches Gemini the 19 Summer skill names. Use with the npm CLI for skill files on disk.",
|
|
5
|
+
"contextFileName": "GEMINI.md",
|
|
6
|
+
"mcpServers": {
|
|
7
|
+
"summer-engine": {
|
|
8
|
+
"command": "npx",
|
|
9
|
+
"args": ["summer-engine", "mcp"],
|
|
10
|
+
"cwd": "${extensionPath}"
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
"settings": [
|
|
14
|
+
{
|
|
15
|
+
"name": "enable_pre_commit_doctor",
|
|
16
|
+
"description": "Block git commits on summer doctor FAIL (off by default)",
|
|
17
|
+
"envVar": "SUMMER_PRE_COMMIT_DOCTOR",
|
|
18
|
+
"sensitive": false
|
|
19
|
+
}
|
|
20
|
+
]
|
|
21
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 1,
|
|
3
|
+
"hooks": {
|
|
4
|
+
"sessionStart": [
|
|
5
|
+
{
|
|
6
|
+
"matcher": "startup|clear|compact",
|
|
7
|
+
"command": "./hooks/run-hook.cmd session-start",
|
|
8
|
+
"async": false,
|
|
9
|
+
"timeout": 10
|
|
10
|
+
}
|
|
11
|
+
],
|
|
12
|
+
"preToolUse": [
|
|
13
|
+
{
|
|
14
|
+
"matcher": "Bash(git commit*)",
|
|
15
|
+
"command": "./hooks/run-hook.cmd pre-commit-doctor",
|
|
16
|
+
"async": false,
|
|
17
|
+
"timeout": 30
|
|
18
|
+
}
|
|
19
|
+
]
|
|
20
|
+
}
|
|
21
|
+
}
|
package/hooks/hooks.json
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
"description": "Summer Engine lifecycle hooks: session-start orientation + opt-in pre-commit doctor.",
|
|
3
|
+
"hooks": {
|
|
4
|
+
"SessionStart": [
|
|
5
|
+
{
|
|
6
|
+
"matcher": "startup|clear|compact",
|
|
7
|
+
"hooks": [
|
|
8
|
+
{
|
|
9
|
+
"type": "command",
|
|
10
|
+
"command": "\"${CLAUDE_PLUGIN_ROOT}/hooks/run-hook.cmd\" session-start",
|
|
11
|
+
"async": false,
|
|
12
|
+
"timeout": 10
|
|
13
|
+
}
|
|
14
|
+
]
|
|
15
|
+
}
|
|
16
|
+
],
|
|
17
|
+
"PreToolUse": [
|
|
18
|
+
{
|
|
19
|
+
"matcher": "Bash(git commit*)",
|
|
20
|
+
"hooks": [
|
|
21
|
+
{
|
|
22
|
+
"type": "command",
|
|
23
|
+
"command": "\"${CLAUDE_PLUGIN_ROOT}/hooks/run-hook.cmd\" pre-commit-doctor",
|
|
24
|
+
"async": false,
|
|
25
|
+
"timeout": 30
|
|
26
|
+
}
|
|
27
|
+
]
|
|
28
|
+
}
|
|
29
|
+
]
|
|
30
|
+
}
|
|
31
|
+
}
|