summer-engine 2.6.6 → 2.7.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/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +3 -1
  3. package/.codex-plugin/plugin.json +5 -2
  4. package/.cursor-plugin/plugin.json +4 -1
  5. package/.opencode/plugins/summer.js +1 -1
  6. package/AGENTS.md +8 -4
  7. package/CHANGELOG.md +30 -0
  8. package/GEMINI.md +5 -4
  9. package/README.md +7 -4
  10. package/_persona/summer/SKILL.md +1 -0
  11. package/commands/summer.md +13 -0
  12. package/dist/bin/summer.js +4 -0
  13. package/dist/commands/debug.d.ts +2 -0
  14. package/dist/commands/debug.js +44 -0
  15. package/dist/commands/doctor.js +112 -8
  16. package/dist/commands/skills.js +1 -1
  17. package/dist/lib/api-client.d.ts +11 -2
  18. package/dist/lib/api-client.js +110 -9
  19. package/dist/lib/async-op-lifecycle.d.ts +7 -2
  20. package/dist/lib/async-op-lifecycle.js +32 -9
  21. package/dist/lib/debug-report.d.ts +50 -0
  22. package/dist/lib/debug-report.js +308 -0
  23. package/dist/lib/game-task-plan.js +4 -4
  24. package/dist/lib/mcp-boot-notice.d.ts +3 -0
  25. package/dist/lib/mcp-boot-notice.js +7 -0
  26. package/dist/lib/mcp-log.d.ts +3 -0
  27. package/dist/lib/mcp-log.js +72 -0
  28. package/dist/lib/skills-registry.d.ts +25 -1
  29. package/dist/lib/skills-registry.js +46 -0
  30. package/dist/mcp/server.d.ts +2 -2
  31. package/dist/mcp/server.js +79 -7
  32. package/dist/mcp/tools/asset-tools.js +33 -12
  33. package/dist/mcp/tools/cloud-tools.js +15 -15
  34. package/dist/mcp/tools/debug-tools.js +44 -1
  35. package/dist/mcp/tools/file-tools.d.ts +2 -0
  36. package/dist/mcp/tools/file-tools.js +154 -0
  37. package/dist/mcp/tools/generate-tools.js +143 -5
  38. package/dist/mcp/tools/project-tools.js +25 -20
  39. package/dist/mcp/tools/scene-tools.js +101 -24
  40. package/dist/mcp/tools/with-engine.js +4 -4
  41. package/hooks/pre-commit-doctor.sh +0 -0
  42. package/hooks/run-hook.cmd +0 -0
  43. package/hooks/session-start.sh +0 -0
  44. package/package.json +1 -1
  45. package/skills/2d-assets/create-asset-sheet/SKILL.md +17 -15
  46. package/skills/debugging/debug/SKILL.md +23 -1
  47. package/skills/deployment/remote-deploy/SKILL.md +107 -0
  48. package/skills/scene-and-project/brainstorm-game/SKILL.md +4 -4
  49. package/skills/scene-and-project/summer-cloud/SKILL.md +92 -0
  50. package/skills/scripting-patterns/gdscript-patterns/SKILL.md +1 -1
  51. package/skills/workflow/brainstorming/scripts/start-server.sh +0 -0
  52. package/skills/workflow/brainstorming/scripts/stop-server.sh +0 -0
  53. package/skills/workflow/investigating-bugs/find-polluter.sh +0 -0
  54. package/skills/workflow/mcpupdate/SKILL.md +6 -6
  55. package/skills/workflow/using-summer/SKILL.md +20 -1
  56. package/skills/workflow/writing-skills/render-graphs.js +0 -0
@@ -145,6 +145,6 @@ Note the field name difference too: `LabelSettings.outline_color` (Label 2D) vs
145
145
 
146
146
  ## Scene Integration
147
147
 
148
- When the AI adds a node with Summer MCP tools and attaches a script, the script path is set via `summer_set_prop(path, "script", "res://path/to/script.gd")`. The script file must exist first. Create or edit `.gd` files with the host agent's normal file-editing tools, then use Summer MCP only to attach the script and connect scene signals.
148
+ When the AI adds a node with Summer MCP tools and attaches a script, the script path is set via `summer_set_prop(path, "script", "res://path/to/script.gd")`. The script file must exist first. Create it with guarded `summer_write_file` or edit it with `summer_replace_text`, then attach the script and connect scene signals.
149
149
 
150
150
  For signal connections, the receiver must have the handler method. Create the script with the method stub before calling `summer_connect_signal`.
@@ -111,7 +111,7 @@ and skills, make them teach this, and flag where they don't:
111
111
 
112
112
  1. **Understand** what the user wants (one pass, no tool spelunking first).
113
113
  2. **Outline** the plan fast and briefly; proceed once it's clearly right.
114
- 3. **Execute in pure code**. Write GDScript by default (C# only if the project already uses it). Edit `.gd`/`.tscn`/`.tres` as **text files**; that's the default medium.
114
+ 3. **Execute through Summer's identity-bound tools**. Write GDScript by default (C# only if the project already uses it). Read and mutate `.gd`/`.tscn`/`.tres` with `summer_read_file`, `summer_replace_text`, or guarded `summer_write_file`.
115
115
  4. **Play & auto-iterate**. Run the scene/game, read console + script/debugger errors, fix, repeat until clean. Crucially: **play the scene you just made first**, so boot/parse crashes surface immediately instead of after the user navigates to the feature.
116
116
 
117
117
  ## Known bad path to fix first (from real sessions)
@@ -119,11 +119,11 @@ The MCP playbook over-steered agents into **ops-first** scene editing (open/save
119
119
  instantiate) when plain **file editing** is simpler and safer for a headless agent, causing
120
120
  wasted turns, scene "rename"/save-as churn, and editor-tab clobbering. Keep these fixed:
121
121
 
122
- - **File-first for `.tscn`/`.tres`:** edit scene/resource files as text by default; use scene-ops
123
- only for live-engine needs (navmesh/light bake, play/observe, runtime inspect) or instancing
124
- into an already-open scene. The MCP `WriteFile` refusing `.tscn` means "use host file tools," not "use scene ops."
125
- - **Clobber gotcha:** a `.tscn` open in the editor can be overwritten by the editor's tab on save.
126
- reload/close the tab after external writes.
122
+ - **Guarded files for `.tscn`/`.tres`:** use identity-bound MCP text tools for complete-file work;
123
+ use scene ops for live hierarchy/inspector changes, navmesh/light bake, play/observe, runtime
124
+ inspection, or instancing. New files are create-only; overwrites require a read sha256.
125
+ - **External-host limitation:** host tools can still bypass these guards. Flag any doctrine that
126
+ recommends doing so while MCP is available.
127
127
  - **Constraint-based flow:** the playbook's flow is conditional (`buildFlow` for the default,
128
128
  `liveEngineFlow` only when you need the running engine), not a prescriptive always-open-the-editor loop.
129
129
 
@@ -36,7 +36,7 @@ If `CLAUDE.md` says "skip the brainstorm, just build it" and a skill says "alway
36
36
  Two layers:
37
37
 
38
38
  - **Skills** — discipline guides that fire on specific situations: brainstorming a game, designing a mechanic, building an FPS controller, debugging a crash, shipping a build. Each one is a SKILL.md you load via the Skill tool.
39
- - **MCP tools** — `summer_*` tools that talk to the running Summer Engine on `localhost:6550`. Scene mutation (`summer_add_node`, `summer_set_prop`), inspection (`summer_get_scene_tree`, `summer_inspect_node`), play/diagnostics (`summer_play`, `summer_get_diagnostics`), asset import/generation (`summer_import_from_url`, `summer_generate_3d`), and 30+ more.
39
+ - **MCP tools** — `summer_*` tools that talk to the running Summer Engine on `localhost:6550`. Scene mutation (`summer_add_node`, `summer_set_prop`), inspection (`summer_get_scene_tree`, `summer_inspect_node`), play/diagnostics (`summer_play`, `summer_get_diagnostics`), asset import/generation (`summer_import_from_url`, `summer_generate_3d`), whole-project sync to Summer Cloud (`summer_cloud_push`, `summer_cloud_pull`; see `summer:summer-cloud`), and 30+ more.
40
40
 
41
41
  **Scripting language:** Summer Engine is compatible with Godot 4.5. You can write game code in either:
42
42
 
@@ -90,6 +90,7 @@ These thoughts mean STOP. Check skills first.
90
90
  | "I'll write the GDScript myself, no skill" | `gdscript-patterns` encodes idioms that Claude/Codex/Cursor regularly get wrong (signal connection, type hints, `_ready` vs `_process`). |
91
91
  | "The engine isn't running, I'll just edit files" | Editing scene files directly while the engine is running silently overwrites in-memory state. Check the skill. |
92
92
  | "I remember this skill" | Skills evolve. Re-read the current version. |
93
+ | "I'll just zip the project to move it to another machine" | `summer:summer-cloud` syncs the whole project (big assets included) by hash, with restorable versions. Load it whenever the user mentions sync, a second machine, sharing with a teammate, backing up assets, or restoring a version. |
93
94
 
94
95
  ## Skill Priority
95
96
 
@@ -128,6 +129,24 @@ If skills aren't found or the MCP server fails to start:
128
129
  2. If not, point them at: `npx -y summer-engine@latest setup <agent> --yes --force`.
129
130
  3. If `summer doctor` is available, run it: `summer doctor` reports auth, engine, port, project memory, and skill state.
130
131
 
132
+ ## When Summer Is Stale
133
+
134
+ Run `summer doctor` early in a fresh Summer session when setup, MCP tools, slash commands, or skills behave oddly. If doctor reports `cli-version-current` or `skills-version-stale` as warning/fail, refresh before continuing:
135
+
136
+ ```
137
+ npx clear-npx-cache && npx -y summer-engine@latest setup <agent> --yes --force
138
+ ```
139
+
140
+ Use the real agent slug from doctor or the current environment (`claude-code`, `codex`, `cursor`, `gemini`, `github-copilot`, `vscode-copilot`, `opencode`, etc.).
141
+
142
+ Why this exact command matters:
143
+
144
+ - `@latest` forces npm/npx to resolve the current published Summer CLI instead of reusing a stale cached package.
145
+ - `clear-npx-cache` clears old npx package material on machines that keep serving an older Summer.
146
+ - `setup ... --force` rewrites copied skill/slash-command files, which do not update just because the MCP server restarted.
147
+
148
+ After the refresh, restart or reload the agent/MCP session if tools were missing. MCP tool changes load on MCP reconnect; copied skills and slash commands load when the agent notices the rewritten files or starts a fresh session.
149
+
131
150
  ## User Instructions Trump Everything
132
151
 
133
152
  A direct user instruction ("skip the brainstorm", "just write the code", "don't use the MCP, edit files") overrides this skill. Surface the trade-off in one sentence ("Skipping brainstorm — heads up, scope creep is the most common reason game projects die.") and proceed as instructed.
File without changes