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.
Files changed (56) hide show
  1. package/.claude-plugin/plugin.json +18 -10
  2. package/.codex-plugin/plugin.json +36 -8
  3. package/.cursor-plugin/plugin.json +19 -11
  4. package/.opencode/INSTALL.md +69 -0
  5. package/.opencode/plugins/summer.js +9 -4
  6. package/CHANGELOG.md +31 -1
  7. package/README.md +268 -86
  8. package/dist/bin/summer.js +0 -0
  9. package/dist/commands/assets.d.ts +2 -0
  10. package/dist/commands/assets.js +189 -0
  11. package/dist/commands/create.js +55 -17
  12. package/dist/commands/debug.d.ts +2 -0
  13. package/dist/commands/debug.js +127 -0
  14. package/dist/commands/list.js +24 -5
  15. package/dist/commands/project.d.ts +2 -0
  16. package/dist/commands/project.js +170 -0
  17. package/dist/commands/scene.d.ts +2 -0
  18. package/dist/commands/scene.js +290 -0
  19. package/dist/lib/banner.js +2 -2
  20. package/dist/lib/log-filters.d.ts +53 -0
  21. package/dist/lib/log-filters.js +130 -0
  22. package/dist/lib/plugin-manifests.test.d.ts +1 -0
  23. package/dist/lib/plugin-manifests.test.js +134 -0
  24. package/dist/lib/remote-templates.d.ts +25 -0
  25. package/dist/lib/remote-templates.js +86 -0
  26. package/dist/lib/skills-registry.d.ts +17 -1
  27. package/dist/lib/skills-registry.js +23 -1
  28. package/dist/lib/telemetry.d.ts +13 -0
  29. package/dist/lib/telemetry.js +63 -0
  30. package/dist/lib/with-engine.d.ts +14 -0
  31. package/dist/lib/with-engine.js +109 -0
  32. package/dist/mcp/tools/asset-tools.js +12 -13
  33. package/dist/mcp/tools/debug-tools.js +32 -9
  34. package/dist/mcp/tools/with-engine.js +4 -0
  35. package/gemini-extension.json +2 -2
  36. package/hooks/pre-commit-doctor.sh +0 -0
  37. package/hooks/run-hook.cmd +0 -0
  38. package/hooks/session-start.sh +0 -0
  39. package/marketplace.json +2 -2
  40. package/package.json +3 -3
  41. package/skills/README.md +1 -1
  42. package/skills/_meta/skill-create/SKILL.md +1 -1
  43. package/skills/_meta/skill-improve/SKILL.md +1 -1
  44. package/skills/_meta/skill-test/SKILL.md +1 -1
  45. package/skills/_meta/using-summer/SKILL.md +130 -0
  46. package/skills/asset-pipeline/asset-strategy/SKILL.md +1 -1
  47. package/skills/catalog.yaml +17 -2
  48. package/skills/character-controllers/fps-controller/SKILL.md +1 -1
  49. package/skills/debugging/debug/SKILL.md +102 -82
  50. package/skills/rendering-and-lighting/3d-lighting/SKILL.md +1 -1
  51. package/skills/scene-and-project/browse-templates/SKILL.md +105 -0
  52. package/skills/scene-and-project/make-game/SKILL.md +159 -346
  53. package/skills/scene-and-project/new-project/SKILL.md +106 -0
  54. package/skills/scene-and-project/scene-composition/SKILL.md +1 -1
  55. package/skills/scripting-patterns/gdscript-patterns/SKILL.md +1 -1
  56. 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: How to structure scenes, when to use sub-scenes, node hierarchy conventions, and reusable prefabs. Use when building scenes, organizing nodes, or creating instanced prefabs. Trigger on "scene", "sub-scene", "instance", "prefab", "node hierarchy".
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: Common GDScript idioms — type hints, signals, exports, onready, lifecycle methods, naming conventions. Use when writing GDScript, attaching scripts, or refactoring untyped code. Trigger on "GDScript", "script", "signals", "exports".
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: HUD, menus, health bars, progress bars, and Control-based UI layout. Use when building menus, HUDs, health bars, or any Control-tree UI. Trigger on "UI", "HUD", "menu", "health bar", "Control".
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