summer-engine 1.5.0 → 2.0.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 +18 -10
- package/.codex-plugin/plugin.json +36 -8
- package/.cursor-plugin/plugin.json +19 -11
- package/.opencode/INSTALL.md +69 -0
- package/.opencode/plugins/summer.js +9 -4
- package/CHANGELOG.md +31 -1
- package/README.md +268 -86
- 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/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 +17 -1
- package/dist/lib/skills-registry.js +23 -1
- 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/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/marketplace.json +2 -2
- package/package.json +3 -3
- 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/asset-pipeline/asset-strategy/SKILL.md +1 -1
- package/skills/catalog.yaml +17 -2
- 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
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: new-project
|
|
3
|
+
description: Use when the user wants a fresh blank Summer Engine project — not from a template. Asks one question (project name) and runs `summer create empty <name>`. Trigger on "new project", "blank project", "empty project", "from scratch", "start fresh", "create new game", "blank canvas", "scaffold a project".
|
|
4
|
+
license: MIT
|
|
5
|
+
compatibility: [Cursor, Claude Code, Codex, Windsurf, Gemini, OpenCode]
|
|
6
|
+
category: scene-and-project
|
|
7
|
+
user-invocable: true
|
|
8
|
+
allowed-tools: Bash Read summer_get_project_context
|
|
9
|
+
paths: ["**/project.godot"]
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# /new-project — Scaffold a fresh empty project
|
|
13
|
+
|
|
14
|
+
When the user wants to start from a blank canvas — not a community template, not a built-in starter scene — this is the path.
|
|
15
|
+
|
|
16
|
+
## When to use this skill
|
|
17
|
+
|
|
18
|
+
- "Let's start a new project."
|
|
19
|
+
- "I want to make a [game type] from scratch."
|
|
20
|
+
- "Blank project."
|
|
21
|
+
- "Empty project."
|
|
22
|
+
- "I don't want a template, just a blank starting point."
|
|
23
|
+
|
|
24
|
+
## When NOT to use this skill
|
|
25
|
+
|
|
26
|
+
- "Show me templates" / "use a template" → `summer:browse-templates`.
|
|
27
|
+
- "Make me a game" with a defined idea → run `summer:brainstorm-game` first to scope, then come back here once the user knows what they want.
|
|
28
|
+
- "I have an existing Godot project I want to import" → not this skill; have the user run `summer open <path>` directly.
|
|
29
|
+
|
|
30
|
+
## Steps
|
|
31
|
+
|
|
32
|
+
### 1. Ask the project name
|
|
33
|
+
|
|
34
|
+
One question, no menu:
|
|
35
|
+
|
|
36
|
+
> "What do you want to call your project?"
|
|
37
|
+
|
|
38
|
+
Default: `my-game`. If they say "anything is fine" or similar, use `my-game` and move on. The directory name is reversible — they can always rename.
|
|
39
|
+
|
|
40
|
+
### 2. Pick the starting scene
|
|
41
|
+
|
|
42
|
+
Two built-in options:
|
|
43
|
+
|
|
44
|
+
- `empty` — root `Node3D` only. Pure blank canvas. Best for: experimentation, when the user knows exactly what they want to build.
|
|
45
|
+
- `3d-basic` — root `Node3D` with `Camera3D`, `DirectionalLight3D`, a floor `MeshInstance3D`, and a `WorldEnvironment`. Best for: first-time users, when "just give me something I can press play on" is the vibe.
|
|
46
|
+
|
|
47
|
+
If you're not sure which fits, ask:
|
|
48
|
+
|
|
49
|
+
> "Empty (just a root node) or 3d-basic (camera, light, and a floor — you can press play immediately)?"
|
|
50
|
+
|
|
51
|
+
If the user has clearly invoked `summer:brainstorm-game` already and the brief calls for 3D, default to `3d-basic` and mention you did. If 2D, use `empty` (we don't ship a 2D-basic yet).
|
|
52
|
+
|
|
53
|
+
### 3. Create
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
summer create empty my-game
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
or
|
|
60
|
+
|
|
61
|
+
```
|
|
62
|
+
summer create 3d-basic my-game
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
The command writes `project.godot` and the chosen `main.tscn`. No network call, fast, deterministic.
|
|
66
|
+
|
|
67
|
+
### 4. Open it
|
|
68
|
+
|
|
69
|
+
```
|
|
70
|
+
summer run my-game
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Confirm the engine launched and the project loaded. If `summer run` fails, run `summer doctor` and surface the failure to the user.
|
|
74
|
+
|
|
75
|
+
### 5. Don't keep going automatically
|
|
76
|
+
|
|
77
|
+
After scaffolding, **stop and let the user direct.** A common mistake: fire `summer:fps-controller` or `summer:design-mechanic` automatically because "now we make a game." Wait. The user might want to:
|
|
78
|
+
|
|
79
|
+
- Brainstorm what to build (`summer:brainstorm-game`)
|
|
80
|
+
- Set the visual direction (`summer:art-direction`)
|
|
81
|
+
- Jump straight into a known mechanic (`summer:design-mechanic`)
|
|
82
|
+
- Build a specific controller (`summer:fps-controller`)
|
|
83
|
+
|
|
84
|
+
Ask: "Project is open. What do you want to build?"
|
|
85
|
+
|
|
86
|
+
## Anti-patterns
|
|
87
|
+
|
|
88
|
+
| Don't | Why |
|
|
89
|
+
|---|---|
|
|
90
|
+
| Skip the name question and use `my-game` silently | The user has opinions about the directory name. Two seconds of asking saves a `mv` later. |
|
|
91
|
+
| Use `summer create 3d-basic` for a 2D game | Wrong starting scene. Use `empty` and let the user/agent build the 2D root from there. |
|
|
92
|
+
| Default to a community template | That's `summer:browse-templates`. This skill is specifically for "blank canvas." |
|
|
93
|
+
| Continue into `summer:fps-controller` automatically | Most users want to brainstorm or set art direction first. Stop and ask. |
|
|
94
|
+
| Run this when the user is in an existing project | Check `summer status` or `summer_get_project_context` first. If a project is already open, the user probably wanted to modify it, not create a new one. |
|
|
95
|
+
|
|
96
|
+
## Edge cases
|
|
97
|
+
|
|
98
|
+
- **Engine not running** → that's fine. `summer create` doesn't need the engine. After scaffolding, `summer run <name>` will start it.
|
|
99
|
+
- **User wants 2D but `empty` is the only 2D-friendly built-in** → use `empty`, then in the next breath set up a 2D scene root via `summer_replace_node` (Node3D → Node2D). Mention this — don't surprise the user.
|
|
100
|
+
- **Directory exists** → the CLI errors out. Ask for a different name; don't try to overwrite.
|
|
101
|
+
|
|
102
|
+
## Closing
|
|
103
|
+
|
|
104
|
+
End with: "Project `<name>` is created and open. What do you want to build first?"
|
|
105
|
+
|
|
106
|
+
That's the handoff to whatever skill comes next.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: scene-composition
|
|
3
|
-
description:
|
|
3
|
+
description: Use when building or organizing scenes in Godot — node hierarchy conventions, when to extract sub-scenes, reusable prefab patterns, instance vs add-node decisions. Trigger on "scene", "sub-scene", "instance", "prefab", "node hierarchy", "scene structure", "PackedScene".
|
|
4
4
|
license: MIT
|
|
5
5
|
compatibility: [Cursor, Claude Code, Windsurf, Codex]
|
|
6
6
|
category: scene-and-project
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: gdscript-patterns
|
|
3
|
-
description:
|
|
3
|
+
description: Use when writing or refactoring GDScript — type hints, signals, exports, onready, lifecycle methods (`_ready` vs `_process` vs `_physics_process`), `get_node` vs `$NodePath`, naming conventions. Trigger on "GDScript", "script", "signals", "exports", "onready", "_ready", "_process".
|
|
4
4
|
license: MIT
|
|
5
5
|
compatibility: [Cursor, Claude Code, Windsurf, Codex]
|
|
6
6
|
category: scripting-patterns
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ui-basics
|
|
3
|
-
description:
|
|
3
|
+
description: Use when building Godot UI — HUDs, main menus, pause menus, health bars, progress bars, dialogue boxes, or any Control-node tree. Covers anchors, containers (VBox/HBox/Margin), responsive layout, and theme vs inline styling. Trigger on "UI", "HUD", "menu", "health bar", "Control", "anchors", "VBoxContainer", "main menu", "pause menu".
|
|
4
4
|
license: MIT
|
|
5
5
|
compatibility: [Cursor, Claude Code, Windsurf, Codex]
|
|
6
6
|
category: ui-and-ux
|