summer-engine 1.5.0 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{marketplace.json → .claude-plugin/marketplace.json} +3 -3
- package/.claude-plugin/plugin.json +52 -11
- package/.codex-plugin/plugin.json +69 -8
- package/.cursor-plugin/plugin.json +53 -12
- package/.factory-plugin/plugin.json +20 -0
- package/.opencode/INSTALL.md +75 -0
- package/.opencode/plugins/summer.js +9 -6
- package/AGENTS.md +51 -0
- package/CHANGELOG.md +31 -1
- package/CLAUDE.md +5 -0
- package/GEMINI.md +56 -0
- package/README.md +409 -80
- package/_persona/summer/SKILL.md +113 -0
- package/dist/bin/summer.js +0 -0
- package/dist/commands/assets.d.ts +2 -0
- package/dist/commands/assets.js +189 -0
- package/dist/commands/create.js +55 -17
- package/dist/commands/debug.d.ts +2 -0
- package/dist/commands/debug.js +127 -0
- package/dist/commands/install.js +2 -2
- package/dist/commands/list.js +24 -5
- package/dist/commands/project.d.ts +2 -0
- package/dist/commands/project.js +170 -0
- package/dist/commands/scene.d.ts +2 -0
- package/dist/commands/scene.js +290 -0
- package/dist/lib/banner.js +2 -2
- package/dist/lib/log-filters.d.ts +53 -0
- package/dist/lib/log-filters.js +130 -0
- package/dist/lib/plugin-manifests.test.d.ts +1 -0
- package/dist/lib/plugin-manifests.test.js +134 -0
- package/dist/lib/remote-templates.d.ts +25 -0
- package/dist/lib/remote-templates.js +86 -0
- package/dist/lib/skills-registry.d.ts +283 -3
- package/dist/lib/skills-registry.js +522 -2
- package/dist/lib/telemetry.d.ts +13 -0
- package/dist/lib/telemetry.js +63 -0
- package/dist/lib/with-engine.d.ts +14 -0
- package/dist/lib/with-engine.js +109 -0
- package/dist/mcp/tools/asset-tools.js +12 -13
- package/dist/mcp/tools/debug-tools.js +32 -9
- package/dist/mcp/tools/generate-tools.js +101 -0
- package/dist/mcp/tools/with-engine.js +4 -0
- package/gemini-extension.json +2 -2
- package/hooks/pre-commit-doctor.sh +0 -0
- package/hooks/run-hook.cmd +0 -0
- package/hooks/session-start.sh +0 -0
- package/package.json +11 -5
- 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/README.md +1 -1
- package/skills/_meta/skill-create/SKILL.md +1 -1
- package/skills/_meta/skill-improve/SKILL.md +1 -1
- package/skills/_meta/skill-test/SKILL.md +1 -1
- package/skills/_meta/using-summer/SKILL.md +130 -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 +266 -5
- package/skills/character-controllers/fps-controller/SKILL.md +1 -1
- package/skills/debugging/debug/SKILL.md +102 -82
- package/skills/rendering-and-lighting/3d-lighting/SKILL.md +1 -1
- package/skills/scene-and-project/browse-templates/SKILL.md +105 -0
- package/skills/scene-and-project/make-game/SKILL.md +159 -346
- package/skills/scene-and-project/new-project/SKILL.md +106 -0
- package/skills/scene-and-project/scene-composition/SKILL.md +1 -1
- package/skills/scripting-patterns/gdscript-patterns/SKILL.md +1 -1
- package/skills/ui-and-ux/ui-basics/SKILL.md +1 -1
- 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,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/claude-code-marketplace.json",
|
|
3
|
-
"name": "summer",
|
|
3
|
+
"name": "summer-engine",
|
|
4
4
|
"description": "Summer Engine plugins for Claude Code",
|
|
5
5
|
"owner": { "name": "Summer Engine", "email": "founders@summerengine.com" },
|
|
6
6
|
"plugins": [
|
|
7
7
|
{
|
|
8
8
|
"name": "summer",
|
|
9
9
|
"source": "./",
|
|
10
|
-
"version": "
|
|
11
|
-
"description": "AI game
|
|
10
|
+
"version": "2.2.0",
|
|
11
|
+
"description": "Superpowers for AI game dev. 60 auto-trigger skills under summer: namespace, MCP bridge to the local Summer Engine, session-start + pre-commit hooks.",
|
|
12
12
|
"author": { "name": "Summer Engine", "email": "founders@summerengine.com" },
|
|
13
13
|
"category": "game-development",
|
|
14
14
|
"tags": ["game-dev", "godot", "ai-game-engine"],
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json",
|
|
3
3
|
"name": "summer",
|
|
4
|
-
"version": "
|
|
5
|
-
"description": "AI game
|
|
4
|
+
"version": "2.2.0",
|
|
5
|
+
"description": "Superpowers for AI game dev. 60 auto-trigger skills + lifecycle hooks + MCP bridge to the local Summer Engine — the AI-native game engine.",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "Summer Engine",
|
|
8
8
|
"email": "founders@summerengine.com",
|
|
9
9
|
"url": "https://summerengine.com"
|
|
10
10
|
},
|
|
11
11
|
"homepage": "https://summerengine.com",
|
|
12
|
-
"repository": "https://github.com/SummerEngine/summer
|
|
12
|
+
"repository": "https://github.com/SummerEngine/summer",
|
|
13
13
|
"license": "MIT",
|
|
14
14
|
"keywords": [
|
|
15
15
|
"game-dev",
|
|
@@ -26,25 +26,66 @@
|
|
|
26
26
|
"performance"
|
|
27
27
|
],
|
|
28
28
|
"skills": [
|
|
29
|
+
"./skills/_meta/using-summer/",
|
|
30
|
+
"./skills/_meta/skill-create/",
|
|
31
|
+
"./skills/_meta/skill-improve/",
|
|
32
|
+
"./skills/_meta/skill-test/",
|
|
29
33
|
"./skills/scene-and-project/brainstorm-game/",
|
|
30
|
-
"./skills/
|
|
34
|
+
"./skills/scene-and-project/new-project/",
|
|
35
|
+
"./skills/scene-and-project/browse-templates/",
|
|
31
36
|
"./skills/scene-and-project/play/",
|
|
37
|
+
"./skills/scene-and-project/scene-composition/",
|
|
38
|
+
"./skills/scene-and-project/make-game/",
|
|
39
|
+
"./skills/debugging/debug/",
|
|
32
40
|
"./skills/gameplay-mechanics/design-mechanic/",
|
|
33
41
|
"./skills/level-design/design-level/",
|
|
34
42
|
"./skills/rendering-and-lighting/art-direction/",
|
|
43
|
+
"./skills/rendering-and-lighting/3d-lighting/",
|
|
35
44
|
"./skills/audio/audio-direction/",
|
|
36
|
-
"./skills/visual-effects/
|
|
45
|
+
"./skills/visual-effects/game-feel/",
|
|
37
46
|
"./skills/performance/tune-performance/",
|
|
38
47
|
"./skills/ai-and-npcs/design-npc/",
|
|
39
48
|
"./skills/multiplayer-and-networking/setup-multiplayer/",
|
|
49
|
+
"./skills/multiplayer-and-networking/host-authoritative-state/",
|
|
50
|
+
"./skills/multiplayer-and-networking/peer-to-peer-multiplayer/",
|
|
40
51
|
"./skills/deployment/export-and-ship/",
|
|
41
52
|
"./skills/character-controllers/fps-controller/",
|
|
42
|
-
"./skills/
|
|
43
|
-
"./skills/
|
|
44
|
-
"./skills/
|
|
45
|
-
"./skills/
|
|
46
|
-
"./skills/assets/
|
|
47
|
-
"./skills/
|
|
53
|
+
"./skills/scripting-patterns/gdscript-patterns/",
|
|
54
|
+
"./skills/ui-and-ux/ui-basics/",
|
|
55
|
+
"./skills/asset-pipeline/asset-strategy/",
|
|
56
|
+
"./skills/2d-assets/concept-art/",
|
|
57
|
+
"./skills/2d-assets/character-portrait/",
|
|
58
|
+
"./skills/2d-assets/pixel-art/",
|
|
59
|
+
"./skills/2d-assets/ui-graphics/",
|
|
60
|
+
"./skills/2d-assets/tileable-texture/",
|
|
61
|
+
"./skills/2d-assets/sprite-sheet/",
|
|
62
|
+
"./skills/2d-assets/skybox-panorama/",
|
|
63
|
+
"./skills/3d-assets/prop-model/",
|
|
64
|
+
"./skills/3d-assets/character-model/",
|
|
65
|
+
"./skills/3d-assets/environment-kit/",
|
|
66
|
+
"./skills/3d-assets/vehicle-model/",
|
|
67
|
+
"./skills/3d-assets/organic-model/",
|
|
68
|
+
"./skills/animation/generate-motion/",
|
|
69
|
+
"./skills/animation/retarget/",
|
|
70
|
+
"./skills/animation/animation-tree/",
|
|
71
|
+
"./skills/animation/procedural-animation/",
|
|
72
|
+
"./skills/animation/facial-and-lipsync/",
|
|
73
|
+
"./skills/audio/sound-effect/",
|
|
74
|
+
"./skills/audio/music-track/",
|
|
75
|
+
"./skills/audio/ambient-bed/",
|
|
76
|
+
"./skills/audio/voice-line/",
|
|
77
|
+
"./skills/audio/adaptive-music/",
|
|
78
|
+
"./skills/video/cinematic-cutscene/",
|
|
79
|
+
"./skills/video/trailer-shot/",
|
|
80
|
+
"./skills/video/animated-loop/",
|
|
81
|
+
"./skills/visual-effects/recipes/fire/",
|
|
82
|
+
"./skills/visual-effects/recipes/muzzle-flash/",
|
|
83
|
+
"./skills/visual-effects/recipes/water-ripple/",
|
|
84
|
+
"./skills/visual-effects/recipes/lightning/",
|
|
85
|
+
"./skills/visual-effects/recipes/dissolve/",
|
|
86
|
+
"./skills/visual-effects/recipes/smoke/",
|
|
87
|
+
"./skills/visual-effects/recipes/hit-spark/",
|
|
88
|
+
"./skills/visual-effects/recipes/magic-glow/"
|
|
48
89
|
],
|
|
49
90
|
"hooks": "./hooks/hooks.json",
|
|
50
91
|
"mcpServers": "./.mcp.json",
|
|
@@ -1,26 +1,87 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "summer",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "AI game
|
|
3
|
+
"version": "2.2.0",
|
|
4
|
+
"description": "Superpowers for AI game dev. 60 auto-trigger skills, MCP bridge to the local Summer Engine, lifecycle hooks. Build games by talking.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Summer Engine",
|
|
7
7
|
"email": "founders@summerengine.com",
|
|
8
8
|
"url": "https://summerengine.com"
|
|
9
9
|
},
|
|
10
10
|
"homepage": "https://summerengine.com",
|
|
11
|
-
"repository": "https://github.com/SummerEngine/summer
|
|
11
|
+
"repository": "https://github.com/SummerEngine/summer",
|
|
12
12
|
"license": "MIT",
|
|
13
13
|
"keywords": [
|
|
14
14
|
"game-dev", "godot", "ai-game-engine", "skills",
|
|
15
15
|
"workflow", "level-design", "vfx", "multiplayer"
|
|
16
16
|
],
|
|
17
|
-
"skills":
|
|
17
|
+
"skills": [
|
|
18
|
+
"./skills/_meta/using-summer/",
|
|
19
|
+
"./skills/_meta/skill-create/",
|
|
20
|
+
"./skills/_meta/skill-improve/",
|
|
21
|
+
"./skills/_meta/skill-test/",
|
|
22
|
+
"./skills/scene-and-project/brainstorm-game/",
|
|
23
|
+
"./skills/scene-and-project/new-project/",
|
|
24
|
+
"./skills/scene-and-project/browse-templates/",
|
|
25
|
+
"./skills/scene-and-project/play/",
|
|
26
|
+
"./skills/scene-and-project/scene-composition/",
|
|
27
|
+
"./skills/scene-and-project/make-game/",
|
|
28
|
+
"./skills/debugging/debug/",
|
|
29
|
+
"./skills/gameplay-mechanics/design-mechanic/",
|
|
30
|
+
"./skills/level-design/design-level/",
|
|
31
|
+
"./skills/rendering-and-lighting/art-direction/",
|
|
32
|
+
"./skills/rendering-and-lighting/3d-lighting/",
|
|
33
|
+
"./skills/audio/audio-direction/",
|
|
34
|
+
"./skills/visual-effects/game-feel/",
|
|
35
|
+
"./skills/performance/tune-performance/",
|
|
36
|
+
"./skills/ai-and-npcs/design-npc/",
|
|
37
|
+
"./skills/multiplayer-and-networking/setup-multiplayer/",
|
|
38
|
+
"./skills/multiplayer-and-networking/host-authoritative-state/",
|
|
39
|
+
"./skills/multiplayer-and-networking/peer-to-peer-multiplayer/",
|
|
40
|
+
"./skills/deployment/export-and-ship/",
|
|
41
|
+
"./skills/character-controllers/fps-controller/",
|
|
42
|
+
"./skills/scripting-patterns/gdscript-patterns/",
|
|
43
|
+
"./skills/ui-and-ux/ui-basics/",
|
|
44
|
+
"./skills/asset-pipeline/asset-strategy/",
|
|
45
|
+
"./skills/2d-assets/concept-art/",
|
|
46
|
+
"./skills/2d-assets/character-portrait/",
|
|
47
|
+
"./skills/2d-assets/pixel-art/",
|
|
48
|
+
"./skills/2d-assets/ui-graphics/",
|
|
49
|
+
"./skills/2d-assets/tileable-texture/",
|
|
50
|
+
"./skills/2d-assets/sprite-sheet/",
|
|
51
|
+
"./skills/2d-assets/skybox-panorama/",
|
|
52
|
+
"./skills/3d-assets/prop-model/",
|
|
53
|
+
"./skills/3d-assets/character-model/",
|
|
54
|
+
"./skills/3d-assets/environment-kit/",
|
|
55
|
+
"./skills/3d-assets/vehicle-model/",
|
|
56
|
+
"./skills/3d-assets/organic-model/",
|
|
57
|
+
"./skills/animation/generate-motion/",
|
|
58
|
+
"./skills/animation/retarget/",
|
|
59
|
+
"./skills/animation/animation-tree/",
|
|
60
|
+
"./skills/animation/procedural-animation/",
|
|
61
|
+
"./skills/animation/facial-and-lipsync/",
|
|
62
|
+
"./skills/audio/sound-effect/",
|
|
63
|
+
"./skills/audio/music-track/",
|
|
64
|
+
"./skills/audio/ambient-bed/",
|
|
65
|
+
"./skills/audio/voice-line/",
|
|
66
|
+
"./skills/audio/adaptive-music/",
|
|
67
|
+
"./skills/video/cinematic-cutscene/",
|
|
68
|
+
"./skills/video/trailer-shot/",
|
|
69
|
+
"./skills/video/animated-loop/",
|
|
70
|
+
"./skills/visual-effects/recipes/fire/",
|
|
71
|
+
"./skills/visual-effects/recipes/muzzle-flash/",
|
|
72
|
+
"./skills/visual-effects/recipes/water-ripple/",
|
|
73
|
+
"./skills/visual-effects/recipes/lightning/",
|
|
74
|
+
"./skills/visual-effects/recipes/dissolve/",
|
|
75
|
+
"./skills/visual-effects/recipes/smoke/",
|
|
76
|
+
"./skills/visual-effects/recipes/hit-spark/",
|
|
77
|
+
"./skills/visual-effects/recipes/magic-glow/"
|
|
78
|
+
],
|
|
18
79
|
"mcpServers": "./.mcp.json",
|
|
19
80
|
"hooks": "./hooks/hooks.json",
|
|
20
81
|
"interface": {
|
|
21
|
-
"displayName": "Summer
|
|
22
|
-
"shortDescription": "
|
|
23
|
-
"longDescription": "Summer
|
|
82
|
+
"displayName": "Summer",
|
|
83
|
+
"shortDescription": "Superpowers for AI game dev. Build games by talking.",
|
|
84
|
+
"longDescription": "Summer turns Codex into a game-dev studio for Summer Engine — the AI-native game engine. 60 auto-trigger skills covering brainstorm, design, build, play, debug, ship — plus a using-summer meta-skill that establishes workflow priority on session start. The MCP bridge talks to the local Summer Engine for scene mutation, asset import, render, play, and diagnostics — 38 focused tools across scene/debug/project/asset/generate, with file/git/shell/grep deferred to the host agent. Summer Engine is compatible with Godot 4.5 — write code in GDScript, drive the engine via MCP. Session-start orients the session. Pre-commit doctor (opt-in) blocks bad commits.",
|
|
24
85
|
"developerName": "Summer Engine",
|
|
25
86
|
"category": "Coding",
|
|
26
87
|
"capabilities": ["Interactive", "Read", "Write"],
|
|
@@ -30,7 +91,7 @@
|
|
|
30
91
|
"defaultPrompt": [
|
|
31
92
|
"I want to make a game.",
|
|
32
93
|
"/summer:brainstorm-game",
|
|
33
|
-
"Open this
|
|
94
|
+
"Open this Summer Engine project and tell me what's broken."
|
|
34
95
|
],
|
|
35
96
|
"brandColor": "#FF8F17",
|
|
36
97
|
"screenshots": []
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://cursor.com/schemas/cursor-plugin/plugin.json",
|
|
3
3
|
"name": "summer",
|
|
4
|
-
"displayName": "Summer
|
|
5
|
-
"version": "
|
|
6
|
-
"description": "AI game
|
|
4
|
+
"displayName": "Summer",
|
|
5
|
+
"version": "2.2.0",
|
|
6
|
+
"description": "Superpowers for AI game dev. 60 auto-trigger skills + lifecycle hooks + MCP bridge to the local Summer Engine — the AI-native game engine.",
|
|
7
7
|
"author": { "name": "Summer Engine", "email": "founders@summerengine.com" },
|
|
8
8
|
"publisher": "summer-engine",
|
|
9
9
|
"homepage": "https://summerengine.com",
|
|
10
|
-
"repository": "https://github.com/SummerEngine/summer
|
|
10
|
+
"repository": "https://github.com/SummerEngine/summer",
|
|
11
11
|
"license": "MIT",
|
|
12
12
|
"category": "developer-tools",
|
|
13
13
|
"keywords": [
|
|
@@ -17,25 +17,66 @@
|
|
|
17
17
|
],
|
|
18
18
|
"tags": ["game-dev", "ai", "godot", "creative", "design"],
|
|
19
19
|
"skills": [
|
|
20
|
+
"./skills/_meta/using-summer/",
|
|
21
|
+
"./skills/_meta/skill-create/",
|
|
22
|
+
"./skills/_meta/skill-improve/",
|
|
23
|
+
"./skills/_meta/skill-test/",
|
|
20
24
|
"./skills/scene-and-project/brainstorm-game/",
|
|
21
|
-
"./skills/
|
|
25
|
+
"./skills/scene-and-project/new-project/",
|
|
26
|
+
"./skills/scene-and-project/browse-templates/",
|
|
22
27
|
"./skills/scene-and-project/play/",
|
|
28
|
+
"./skills/scene-and-project/scene-composition/",
|
|
29
|
+
"./skills/scene-and-project/make-game/",
|
|
30
|
+
"./skills/debugging/debug/",
|
|
23
31
|
"./skills/gameplay-mechanics/design-mechanic/",
|
|
24
32
|
"./skills/level-design/design-level/",
|
|
25
33
|
"./skills/rendering-and-lighting/art-direction/",
|
|
34
|
+
"./skills/rendering-and-lighting/3d-lighting/",
|
|
26
35
|
"./skills/audio/audio-direction/",
|
|
27
|
-
"./skills/visual-effects/
|
|
36
|
+
"./skills/visual-effects/game-feel/",
|
|
28
37
|
"./skills/performance/tune-performance/",
|
|
29
38
|
"./skills/ai-and-npcs/design-npc/",
|
|
30
39
|
"./skills/multiplayer-and-networking/setup-multiplayer/",
|
|
40
|
+
"./skills/multiplayer-and-networking/host-authoritative-state/",
|
|
41
|
+
"./skills/multiplayer-and-networking/peer-to-peer-multiplayer/",
|
|
31
42
|
"./skills/deployment/export-and-ship/",
|
|
32
43
|
"./skills/character-controllers/fps-controller/",
|
|
33
|
-
"./skills/
|
|
34
|
-
"./skills/
|
|
35
|
-
"./skills/
|
|
36
|
-
"./skills/
|
|
37
|
-
"./skills/assets/
|
|
38
|
-
"./skills/
|
|
44
|
+
"./skills/scripting-patterns/gdscript-patterns/",
|
|
45
|
+
"./skills/ui-and-ux/ui-basics/",
|
|
46
|
+
"./skills/asset-pipeline/asset-strategy/",
|
|
47
|
+
"./skills/2d-assets/concept-art/",
|
|
48
|
+
"./skills/2d-assets/character-portrait/",
|
|
49
|
+
"./skills/2d-assets/pixel-art/",
|
|
50
|
+
"./skills/2d-assets/ui-graphics/",
|
|
51
|
+
"./skills/2d-assets/tileable-texture/",
|
|
52
|
+
"./skills/2d-assets/sprite-sheet/",
|
|
53
|
+
"./skills/2d-assets/skybox-panorama/",
|
|
54
|
+
"./skills/3d-assets/prop-model/",
|
|
55
|
+
"./skills/3d-assets/character-model/",
|
|
56
|
+
"./skills/3d-assets/environment-kit/",
|
|
57
|
+
"./skills/3d-assets/vehicle-model/",
|
|
58
|
+
"./skills/3d-assets/organic-model/",
|
|
59
|
+
"./skills/animation/generate-motion/",
|
|
60
|
+
"./skills/animation/retarget/",
|
|
61
|
+
"./skills/animation/animation-tree/",
|
|
62
|
+
"./skills/animation/procedural-animation/",
|
|
63
|
+
"./skills/animation/facial-and-lipsync/",
|
|
64
|
+
"./skills/audio/sound-effect/",
|
|
65
|
+
"./skills/audio/music-track/",
|
|
66
|
+
"./skills/audio/ambient-bed/",
|
|
67
|
+
"./skills/audio/voice-line/",
|
|
68
|
+
"./skills/audio/adaptive-music/",
|
|
69
|
+
"./skills/video/cinematic-cutscene/",
|
|
70
|
+
"./skills/video/trailer-shot/",
|
|
71
|
+
"./skills/video/animated-loop/",
|
|
72
|
+
"./skills/visual-effects/recipes/fire/",
|
|
73
|
+
"./skills/visual-effects/recipes/muzzle-flash/",
|
|
74
|
+
"./skills/visual-effects/recipes/water-ripple/",
|
|
75
|
+
"./skills/visual-effects/recipes/lightning/",
|
|
76
|
+
"./skills/visual-effects/recipes/dissolve/",
|
|
77
|
+
"./skills/visual-effects/recipes/smoke/",
|
|
78
|
+
"./skills/visual-effects/recipes/hit-spark/",
|
|
79
|
+
"./skills/visual-effects/recipes/magic-glow/"
|
|
39
80
|
],
|
|
40
81
|
"hooks": "./hooks/hooks-cursor.json",
|
|
41
82
|
"mcpServers": "./.mcp.json"
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "summer",
|
|
3
|
+
"description": "Superpowers for AI game dev. 24 auto-trigger skills + lifecycle hooks + MCP bridge to the local Summer Engine — the AI-native game engine.",
|
|
4
|
+
"version": "2.0.1",
|
|
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",
|
|
12
|
+
"license": "MIT",
|
|
13
|
+
"keywords": [
|
|
14
|
+
"game-dev",
|
|
15
|
+
"godot",
|
|
16
|
+
"ai-game-engine",
|
|
17
|
+
"skills",
|
|
18
|
+
"mcp"
|
|
19
|
+
]
|
|
20
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# Installing Summer in OpenCode
|
|
2
|
+
|
|
3
|
+
OpenCode loads plugins as JavaScript modules from `node_modules`, so installation = `npm install` of this package into your OpenCode project.
|
|
4
|
+
|
|
5
|
+
## Quick install
|
|
6
|
+
|
|
7
|
+
From your OpenCode project root, run:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npm install --save-dev summer-engine
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Then add the plugin to your `opencode.json`:
|
|
14
|
+
|
|
15
|
+
```json
|
|
16
|
+
{
|
|
17
|
+
"plugin": ["summer-engine"]
|
|
18
|
+
}
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
OpenCode resolves `summer-engine` via the package's `main` field, which points to the Summer plugin entry. You can also pin to git for unreleased changes:
|
|
22
|
+
|
|
23
|
+
```json
|
|
24
|
+
{
|
|
25
|
+
"plugin": ["summer-engine@git+https://github.com/SummerEngine/summer.git"]
|
|
26
|
+
}
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Restart OpenCode. The orientation banner ("Summer Engine is loaded. N skills available…") will appear at the top of every new session, and skills will auto-discover from `node_modules/summer-engine/skills/`.
|
|
30
|
+
|
|
31
|
+
## What this gives you
|
|
32
|
+
|
|
33
|
+
- **24 auto-trigger skills** under the `summer:` namespace, including `using-summer`, `brainstorm-game`, `debug`, `play`, `fps-controller`, `gdscript-patterns`, `scene-composition`, `art-direction`, and more.
|
|
34
|
+
- **A `summer-engine` MCP server** — start it with `npx summer-engine mcp` and OpenCode will route scene/diagnostics/asset tools to your local Summer Engine running on `localhost:6550`.
|
|
35
|
+
- **Session-start orientation** — first user message of every session is prefixed with the using-summer primer so the model invokes skills before responding.
|
|
36
|
+
|
|
37
|
+
## Configure the MCP server
|
|
38
|
+
|
|
39
|
+
Add this block to your `opencode.json` so OpenCode launches the MCP server on demand:
|
|
40
|
+
|
|
41
|
+
```json
|
|
42
|
+
{
|
|
43
|
+
"mcp": {
|
|
44
|
+
"summer-engine": {
|
|
45
|
+
"command": "npx",
|
|
46
|
+
"args": ["summer-engine", "mcp"]
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Verify
|
|
53
|
+
|
|
54
|
+
In a fresh OpenCode session, ask:
|
|
55
|
+
|
|
56
|
+
> Let's make an FPS in Summer Engine.
|
|
57
|
+
|
|
58
|
+
The model should auto-invoke the `summer:fps-controller` skill before writing any code. If it doesn't, the plugin isn't loaded — check `opencode.json` and your `node_modules/summer-engine/` install.
|
|
59
|
+
|
|
60
|
+
## Troubleshooting
|
|
61
|
+
|
|
62
|
+
| Symptom | Fix |
|
|
63
|
+
|---|---|
|
|
64
|
+
| No orientation banner appears | Verify `plugin` array in `opencode.json` and that `summer-engine` is installed in `node_modules/`. |
|
|
65
|
+
| MCP tools return "not connected" | Run `summer run` to launch the engine. The MCP server lazy-connects on the first tool call. |
|
|
66
|
+
| `summer` command not found | `npm install -g summer-engine` for the global CLI. |
|
|
67
|
+
| Skills don't auto-trigger | The using-summer skill loads on first user message; if that message is empty (e.g. a startup probe), they'll trigger on the second. |
|
|
68
|
+
|
|
69
|
+
## Uninstall
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
npm uninstall summer-engine
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Remove the `plugin` and `mcp` entries from `opencode.json`.
|
|
@@ -12,10 +12,15 @@ const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
|
12
12
|
const skillsDir = path.resolve(__dirname, '../../skills');
|
|
13
13
|
|
|
14
14
|
const ORIENTATION = `<EXTREMELY_IMPORTANT>
|
|
15
|
-
Summer
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
Summer is loaded. 24 skills available under the summer: namespace.
|
|
16
|
+
|
|
17
|
+
Activate summer:using-summer FIRST in any Summer Engine session — it sets workflow priority and the red-flag list.
|
|
18
|
+
|
|
19
|
+
Process skills (run before building): brainstorm-game, debug, play.
|
|
20
|
+
Discipline skills (shape what you build): gdscript-patterns, scene-composition, art-direction, audio-direction, asset-strategy.
|
|
21
|
+
Build skills (produce artifacts): fps-controller, design-mechanic, design-level, setup-multiplayer, host-authoritative-state, peer-to-peer-multiplayer, design-npc, 3d-lighting, ui-basics, vfx, tune-performance, export-and-ship, make-game.
|
|
22
|
+
|
|
23
|
+
Always check for a relevant skill before responding. The summer-engine MCP server (npx summer-engine mcp) provides scene mutation, asset import, render, play, and diagnostics tools — file ops, git, shell, and grep are NOT exposed (use OpenCode's native tools).
|
|
19
24
|
</EXTREMELY_IMPORTANT>`;
|
|
20
25
|
|
|
21
26
|
export const SummerPlugin = async ({ client, directory }) => {
|
|
@@ -45,5 +50,3 @@ export const SummerPlugin = async ({ client, directory }) => {
|
|
|
45
50
|
}
|
|
46
51
|
};
|
|
47
52
|
};
|
|
48
|
-
|
|
49
|
-
export default SummerPlugin;
|
package/AGENTS.md
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# Summer — Agent Context
|
|
2
|
+
|
|
3
|
+
This file is for any AI agent that loads context from `AGENTS.md` (Codex CLI, Factory Droid, etc). It mirrors the Summer onboarding rules — see `GEMINI.md` for the same content keyed for Gemini.
|
|
4
|
+
|
|
5
|
+
## What you're working with
|
|
6
|
+
|
|
7
|
+
**Summer Engine** is the AI-native game engine the user is building in. Editor, scene graph, asset pipeline, and runtime are all instrumented for programmatic control via the `summer-engine` MCP server. Summer Engine is compatible with Godot 4.5 — projects use GDScript (`.gd`), C# (`.cs`), scenes (`.tscn`/`.scn`), and resources (`.tres`/`.res`). Write code in those languages; talk to the engine through MCP tools.
|
|
8
|
+
|
|
9
|
+
## Critical rules
|
|
10
|
+
|
|
11
|
+
1. **Always check for a relevant Summer skill before responding.** Even a 1% chance a skill applies = invoke it. Start with `summer:using-summer` on every fresh Summer Engine session.
|
|
12
|
+
2. **The user owns fix decisions.** Diagnose first, propose, ask, then edit.
|
|
13
|
+
3. **Don't grep the whole project before reading the actual error.** Use `summer_get_script_errors` first.
|
|
14
|
+
4. **Don't edit `.tscn` files directly while the engine is running.** Use the `summer_*` MCP tools — direct edits get overwritten when the editor saves.
|
|
15
|
+
5. **Never call `summer_set_resource_property` against an inline `sub_resource`** — it silently drops the value. Instantiate via `summer_set_prop` with a class-name string first.
|
|
16
|
+
|
|
17
|
+
## Skill priority
|
|
18
|
+
|
|
19
|
+
- **Process** (`brainstorm-game`, `debug`, `play`) → how to approach.
|
|
20
|
+
- **Discipline** (`gdscript-patterns`, `scene-composition`, `art-direction`) → how to shape it.
|
|
21
|
+
- **Build** (`fps-controller`, `design-mechanic`, `design-level`, `setup-multiplayer`, `vfx`, `tune-performance`, `export-and-ship`) → produce the artifact.
|
|
22
|
+
|
|
23
|
+
## MCP tool palette (engine on `localhost:6550`)
|
|
24
|
+
|
|
25
|
+
37 tools total. Categories:
|
|
26
|
+
|
|
27
|
+
- Scene: `summer_add_node`, `summer_set_prop`, `summer_set_resource_property`, `summer_remove_node`, `summer_save_scene`, `summer_open_scene`, `summer_replace_node`, `summer_inspect_node`, `summer_inspect_resource`, `summer_get_scene_tree`, `summer_batch`, `summer_select_node`, `summer_instantiate_scene`, `summer_connect_signal`.
|
|
28
|
+
- Diagnostics: `summer_get_script_errors`, `summer_get_diagnostics`, `summer_get_console`, `summer_clear_console`, `summer_get_debugger_errors`.
|
|
29
|
+
- Runtime: `summer_play`, `summer_stop`, `summer_is_running`.
|
|
30
|
+
- Project: `summer_get_project_context`, `summer_open_main_scene`, `summer_project_setting`, `summer_input_map_bind`, `summer_get_agent_playbook`.
|
|
31
|
+
- Assets: `summer_search_assets`, `summer_import_asset`, `summer_import_from_url`, `summer_import_from_url_batch`, `summer_generate_image`, `summer_generate_3d`, `summer_generate_audio`, `summer_generate_video`, `summer_check_job`.
|
|
32
|
+
|
|
33
|
+
File ops, git, shell, and grep are NOT exposed — use the host's native tools.
|
|
34
|
+
|
|
35
|
+
## Type-system gotchas
|
|
36
|
+
|
|
37
|
+
`SetProp` values are engine-formatted strings (Godot type-system compatible), not JSON objects:
|
|
38
|
+
- `"Vector3(0, 10, 0)"`
|
|
39
|
+
- `"Color(1, 0.5, 0, 1)"` (RGBA, 4 components)
|
|
40
|
+
- `"Transform3D(1,0,0, 0,1,0, 0,0,1, 0,5,0)"`
|
|
41
|
+
|
|
42
|
+
Resources are class names: `"BoxMesh"`, `"StandardMaterial3D"`, `"CapsuleShape3D"`.
|
|
43
|
+
|
|
44
|
+
## When something is off
|
|
45
|
+
|
|
46
|
+
| Situation | Action |
|
|
47
|
+
|---|---|
|
|
48
|
+
| MCP tool returns "Summer Engine is not running" | Tell user `summer run`. Continue with non-MCP work. |
|
|
49
|
+
| Skill loads but seems wrong | Re-read it. Skills evolve. |
|
|
50
|
+
| Skill not found | Check `summer skills list`, then `summer setup <agent> --yes`. |
|
|
51
|
+
| Generic engine errors on launch | Run `summer doctor` first — usually reveals auth/port/path issues. |
|
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,36 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to summer-engine will be documented here. Following [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and [Semantic Versioning](https://semver.org/).
|
|
4
4
|
|
|
5
|
+
## [2.0.0] — 2026-05-09 — "Superpowers"
|
|
6
|
+
|
|
7
|
+
The plugin rebrand. Summer is now positioned as superpowers for AI game dev — installable in Claude Code, Codex (CLI + App), Cursor, Factory Droid, Gemini CLI, OpenCode, GitHub Copilot CLI, and Windsurf with one canonical command per harness.
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
- **`summer:using-summer`** meta-skill — establishes workflow priority, red-flag list, and skill-invocation discipline. Auto-loads on session start. Modeled on `superpowers:using-superpowers`.
|
|
11
|
+
- **`summer:debug`** skill — the missing flagship skill. Disciplined script-errors → console → debugger → hypothesize → propose → fix → verify loop. Honors all 4 cases in `_tests/specs/debug.md`.
|
|
12
|
+
- **Manifest validator** (`src/lib/plugin-manifests.test.ts`) — vitest test that walks every plugin manifest and verifies each referenced skill resolves to a real `SKILL.md` on disk. Also enforces the "Use when…" auto-trigger pattern in every skill's description.
|
|
13
|
+
- **`AGENTS.md`** + **`GEMINI.md`** at repo root — context primer for harnesses that read AGENTS-style files (Codex, Factory) and the Gemini extension.
|
|
14
|
+
- **`.opencode/INSTALL.md`** — explicit OpenCode setup guide.
|
|
15
|
+
- **`docs/marketplace-repo/`** — drop-in contents for the separate `SummerEngine/summer-marketplace` repo (Claude marketplace listing).
|
|
16
|
+
- Multiplayer skills (`host-authoritative-state`, `peer-to-peer-multiplayer`) added to all plugin manifests.
|
|
17
|
+
|
|
18
|
+
### Changed
|
|
19
|
+
- **Brand:** "Summer" replaces "Summer Engine CLI" across all plugin descriptions, READMEs, and orientation banners. The npm package stays `summer-engine` (continuity).
|
|
20
|
+
- **README** rewritten in superpowers-homepage style — install matrix per harness, philosophy section, basic workflow walkthrough.
|
|
21
|
+
- **MCP_STRATEGY.md** updated: documents the deliberate decision to NOT ship file/git/shell/grep tools (host agents have those natively). 37 tools shipped.
|
|
22
|
+
- All 22 user-facing skill descriptions audited and rewritten to lead with "Use when X" for tighter auto-trigger.
|
|
23
|
+
- `.codex-plugin/plugin.json` `longDescription` rewritten — accurate skill count, mentions the host-native tool exclusion.
|
|
24
|
+
- `.opencode/plugins/summer.js` orientation banner updated to 22 skills with explicit process / discipline / build priority.
|
|
25
|
+
|
|
26
|
+
### Fixed
|
|
27
|
+
- **Critical:** 4 broken skill paths in `.claude-plugin/plugin.json` and `.cursor-plugin/plugin.json`. Plugin install would silently fail for `gdscript-patterns`, `ui-basics`, `asset-strategy`, and `debug` (the latter didn't exist at all). All paths now resolve.
|
|
28
|
+
- 2 missing HAVE-status multiplayer skills now listed in all manifests.
|
|
29
|
+
- TypeScript build excludes `*.test.ts` so `npx tsc` produces clean dist without vitest type leakage.
|
|
30
|
+
|
|
31
|
+
### Notes for plugin install
|
|
32
|
+
- After v2, `claude /plugin install summer@summer-marketplace` resolves cleanly. The `SummerEngine/summer-marketplace` repo (one-file marketplace) needs to be created and pushed; contents are in `docs/marketplace-repo/`.
|
|
33
|
+
- Existing `1.x` users updating: `npm update -g summer-engine` then `summer setup <agent> --yes` to refresh skill installs.
|
|
34
|
+
|
|
5
35
|
## [1.3.2] — 2026-05-05
|
|
6
36
|
|
|
7
37
|
### Fixed
|
|
@@ -51,7 +81,7 @@ All notable changes to summer-engine will be documented here. Following [Keep a
|
|
|
51
81
|
- `summer mcp setup <agent>` — idempotent JSON/TOML config writer.
|
|
52
82
|
- Multi-agent skills install (codex, claude-code, cursor, windsurf with user/project scopes; Cursor `.mdc` rule generation; Windsurf rule blocks).
|
|
53
83
|
- Skill registry (`src/lib/skills-registry.ts`) with category metadata.
|
|
54
|
-
- Per-agent docs (
|
|
84
|
+
- Per-agent docs (OVERVIEW, CLAUDE_CODE, CODEX, CURSOR, SKILLS, TEMPLATES).
|
|
55
85
|
|
|
56
86
|
### Changed
|
|
57
87
|
- `/api/mcp/assets`: removed Pro gate; public/community asset search now free for all signed-in users (deployed on summerengine.com).
|
package/CLAUDE.md
ADDED
package/GEMINI.md
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# Summer — Context Primer for Gemini
|
|
2
|
+
|
|
3
|
+
Summer is the AI game-dev studio for **Summer Engine** — the AI-native game engine. When you see this file in a session, it means the user has installed the Summer Gemini extension and you have access to the `summer-engine` MCP server plus 24 skills under the `summer:` namespace.
|
|
4
|
+
|
|
5
|
+
## What Summer Engine is
|
|
6
|
+
|
|
7
|
+
A game engine designed for AI agents — editor, scene graph, asset pipeline, and runtime are all instrumented for programmatic control via MCP. Summer Engine is compatible with Godot 4.5: projects use GDScript (`.gd`), C# (`.cs`), scenes (`.tscn`/`.scn`), and resources (`.tres`/`.res`). Write code in those languages; talk to the engine through `summer_*` tools.
|
|
8
|
+
|
|
9
|
+
## How to behave
|
|
10
|
+
|
|
11
|
+
**Always check for a relevant Summer skill before writing code or running tools.** Skills encode discipline that matters — debug protocols, scene-composition rules, GDScript idioms Gemini regularly gets wrong. If a skill might apply, even at 1% probability, activate it via `activate_skill`.
|
|
12
|
+
|
|
13
|
+
The single most important skill to know is `summer:using-summer` — it explains the workflow, priority, and the red-flag table of rationalizations the model needs to resist. Activate it first thing in any Summer Engine session.
|
|
14
|
+
|
|
15
|
+
## Skill priority
|
|
16
|
+
|
|
17
|
+
1. **Process skills first**: `brainstorm-game`, `debug`, `play`. These determine HOW.
|
|
18
|
+
2. **Discipline skills second**: `gdscript-patterns`, `scene-composition`, `art-direction`, `audio-direction`. These shape content.
|
|
19
|
+
3. **Build skills third**: `fps-controller`, `design-mechanic`, `design-level`, `setup-multiplayer`, `vfx`, `tune-performance`, `export-and-ship`.
|
|
20
|
+
|
|
21
|
+
## MCP tools (when the engine is running on `localhost:6550`)
|
|
22
|
+
|
|
23
|
+
The `summer-engine` MCP server exposes 37 focused tools. The most important:
|
|
24
|
+
|
|
25
|
+
- **Scene mutation**: `summer_add_node`, `summer_set_prop`, `summer_set_resource_property`, `summer_remove_node`, `summer_save_scene`, `summer_replace_node`, `summer_batch`.
|
|
26
|
+
- **Scene inspection**: `summer_get_scene_tree`, `summer_inspect_node`, `summer_inspect_resource`.
|
|
27
|
+
- **Diagnostics**: `summer_get_script_errors` (cheapest), `summer_get_diagnostics`, `summer_get_console`, `summer_get_debugger_errors`.
|
|
28
|
+
- **Run game**: `summer_play`, `summer_stop`, `summer_is_running`.
|
|
29
|
+
- **Project**: `summer_get_project_context`, `summer_open_main_scene`, `summer_project_setting`, `summer_input_map_bind`.
|
|
30
|
+
- **Assets**: `summer_search_assets`, `summer_import_asset`, `summer_import_from_url`, `summer_generate_image`, `summer_generate_3d`, `summer_generate_audio`, `summer_generate_video`, `summer_check_job`.
|
|
31
|
+
|
|
32
|
+
File ops (Read/Write/Edit), git, shell, and grep are deliberately **not** exposed via MCP — Gemini already has those natively.
|
|
33
|
+
|
|
34
|
+
## Type-system traps
|
|
35
|
+
|
|
36
|
+
`SetProp` values are engine-formatted **strings** (Godot 4.5 type-system compatible):
|
|
37
|
+
|
|
38
|
+
- `"Vector3(0, 10, 0)"` — NOT `{x: 0, y: 10, z: 0}`.
|
|
39
|
+
- `"Color(1, 0.5, 0, 1)"` — RGBA, 4 components.
|
|
40
|
+
- `"Transform3D(1,0,0, 0,1,0, 0,0,1, 0,5,0)"`.
|
|
41
|
+
|
|
42
|
+
Resources are class names: `"BoxMesh"`, `"StandardMaterial3D"`, `"CapsuleShape3D"`.
|
|
43
|
+
|
|
44
|
+
**Trap**: never call `summer_set_resource_property` against an inline `sub_resource` — the value silently drops. Use `summer_set_prop` with a class-name string first to instantiate a standalone resource, then drill in.
|
|
45
|
+
|
|
46
|
+
## When the engine isn't running
|
|
47
|
+
|
|
48
|
+
Tools return "Summer Engine is not running." Tell the user to run `summer run` (or open the engine and load the project), then continue with non-MCP work in the meantime. Do NOT fall back to editing `.tscn` files directly — the editor holds in-memory state that diverges from disk.
|
|
49
|
+
|
|
50
|
+
## Setup help
|
|
51
|
+
|
|
52
|
+
If skills aren't loading or the MCP server fails:
|
|
53
|
+
|
|
54
|
+
- `npm install -g summer-engine` — global CLI.
|
|
55
|
+
- `summer setup gemini --yes` — writes the right MCP config.
|
|
56
|
+
- `summer doctor` — reports auth, engine, port, skill state.
|