summer-engine 3.3.0 → 3.4.1
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/marketplace.json +2 -2
- package/.claude-plugin/plugin.json +4 -2
- package/.codex-plugin/plugin.json +5 -3
- package/.cursor-plugin/plugin.json +4 -2
- package/.factory-plugin/plugin.json +4 -2
- package/.opencode/INSTALL.md +8 -8
- package/.opencode/plugins/summer.js +2 -2
- package/AGENTS.md +7 -7
- package/CHANGELOG.md +50 -0
- package/GEMINI.md +1 -1
- package/NOTICE +1 -1
- package/README.md +32 -35
- package/assets/api-docs.json.gz +0 -0
- package/assets/autopilot/run.sh +2 -2
- package/assets/navigation/web-routes.json +1 -1
- package/commands/gameskill.md +2 -2
- package/commands/summer.md +25 -25
- package/dist/cli/commands/install.d.ts +10 -0
- package/dist/cli/commands/install.js +55 -10
- package/dist/cli/commands/open.d.ts +1 -1
- package/dist/cli/commands/run.d.ts +1 -1
- package/dist/cli/commands/run.js +1 -1
- package/dist/cli/commands/skills.js +2 -2
- package/dist/cli/commands/tool.d.ts +7 -0
- package/dist/cli/commands/tool.js +36 -1
- package/dist/core/api-client.d.ts +5 -6
- package/dist/core/api-client.js +12 -15
- package/dist/core/auth.js +2 -2
- package/dist/core/capabilities/asset-import.d.ts +0 -1
- package/dist/core/capabilities/camera-view.d.ts +1 -1
- package/dist/core/capabilities/camera-view.js +2 -2
- package/dist/core/capabilities/capture-gameplay.d.ts +69 -0
- package/dist/core/capabilities/capture-gameplay.js +283 -0
- package/dist/core/capabilities/connect-signal.d.ts +1 -2
- package/dist/core/capabilities/connect-signal.js +1 -2
- package/dist/core/capabilities/console-read.d.ts +2 -2
- package/dist/core/capabilities/console-read.js +2 -2
- package/dist/core/capabilities/creator.js +1 -1
- package/dist/core/capabilities/doctor.d.ts +9 -1
- package/dist/core/capabilities/doctor.js +47 -4
- package/dist/core/capabilities/engine-receipt.d.ts +5 -7
- package/dist/core/capabilities/engine-receipt.js +7 -9
- package/dist/core/capabilities/engine-run.d.ts +4 -0
- package/dist/core/capabilities/engine-run.js +33 -5
- package/dist/core/capabilities/export-engine-version.d.ts +15 -0
- package/dist/core/capabilities/export-engine-version.js +24 -0
- package/dist/core/capabilities/export-game.d.ts +9 -1
- package/dist/core/capabilities/export-game.js +115 -39
- package/dist/core/capabilities/export-presets.d.ts +1 -1
- package/dist/core/capabilities/export-presets.js +1 -1
- package/dist/core/capabilities/fabricate-mesh.d.ts +2 -3
- package/dist/core/capabilities/fabricate-mesh.js +2 -3
- package/dist/core/capabilities/frame-quality.d.ts +4 -4
- package/dist/core/capabilities/frame-quality.js +4 -4
- package/dist/core/capabilities/grep.d.ts +1 -1
- package/dist/core/capabilities/grep.js +1 -1
- package/dist/core/capabilities/image-generation.d.ts +9 -0
- package/dist/core/capabilities/image-generation.js +19 -1
- package/dist/core/capabilities/navigation/open.d.ts +1 -1
- package/dist/core/capabilities/navigation/open.js +1 -1
- package/dist/core/capabilities/navigation/render-product-map.js +1 -1
- package/dist/core/capabilities/navigation/targets.js +2 -2
- package/dist/core/capabilities/placement-batch.d.ts +1 -1
- package/dist/core/capabilities/placement-batch.js +2 -2
- package/dist/core/capabilities/play-determinism.d.ts +1 -1
- package/dist/core/capabilities/play-determinism.js +1 -1
- package/dist/core/capabilities/publish-build.d.ts +15 -2
- package/dist/core/capabilities/publish-build.js +78 -28
- package/dist/core/capabilities/publish-download.d.ts +1 -2
- package/dist/core/capabilities/publish-download.js +2 -3
- package/dist/core/capabilities/replace-node.d.ts +1 -3
- package/dist/core/capabilities/replace-node.js +1 -3
- package/dist/core/capabilities/runtime-control.d.ts +5 -7
- package/dist/core/capabilities/runtime-control.js +7 -9
- package/dist/core/capabilities/scene-batch.d.ts +1 -1
- package/dist/core/capabilities/scene-batch.js +1 -1
- package/dist/core/capabilities/scene-kind.js +1 -1
- package/dist/core/capabilities/scene-readback.d.ts +3 -4
- package/dist/core/capabilities/scene-readback.js +3 -4
- package/dist/core/capabilities/scene-script.d.ts +2 -2
- package/dist/core/capabilities/scene-script.js +2 -2
- package/dist/core/capabilities/seeing/shot-store.d.ts +1 -1
- package/dist/core/capabilities/seeing/shot-store.js +1 -1
- package/dist/core/capabilities/summer-bundle.d.ts +2 -3
- package/dist/core/capabilities/summer-bundle.js +2 -3
- package/dist/core/capabilities/surface-snap.d.ts +1 -1
- package/dist/core/capabilities/surface-snap.js +1 -1
- package/dist/core/capabilities/tool-dispatch.js +11 -1
- package/dist/core/capabilities/ui-control.d.ts +1 -2
- package/dist/core/capabilities/ui-control.js +1 -2
- package/dist/core/capabilities/world-snapshot.d.ts +1 -1
- package/dist/core/capabilities/world-snapshot.js +1 -1
- package/dist/core/capability-skew.d.ts +2 -3
- package/dist/core/capability-skew.js +4 -5
- package/dist/core/config.js +2 -2
- package/dist/core/engine-install.d.ts +16 -0
- package/dist/core/engine-install.js +32 -2
- package/dist/core/feedback/client.js +1 -1
- package/dist/core/hosted-mcp.d.ts +115 -0
- package/dist/core/hosted-mcp.js +164 -0
- package/dist/core/launch-posture.d.ts +6 -3
- package/dist/core/launch-posture.js +18 -5
- package/dist/core/library-read.js +1 -2
- package/dist/core/templates.d.ts +1 -2
- package/dist/core/templates.js +1 -2
- package/dist/mcp/hosted-mount.d.ts +13 -59
- package/dist/mcp/hosted-mount.js +24 -30
- package/dist/mcp/server.d.ts +2 -2
- package/dist/mcp/server.js +5 -4
- package/dist/mcp/tools/creator-tools.js +14 -4
- package/dist/mcp/tools/debug-tools.js +1 -1
- package/dist/mcp/tools/generate-tools.js +19 -9
- package/dist/mcp/tools/navigation-tools.d.ts +1 -1
- package/dist/mcp/tools/navigation-tools.js +1 -1
- package/dist/mcp/tools/spatial-tools.js +1 -1
- package/dist/mcp/tools/visual-tools.js +2 -2
- package/dist/mcp/tools/with-engine.d.ts +1 -2
- package/dist/mcp/tools/with-engine.js +1 -2
- package/gemini-extension.json +3 -1
- package/hooks/session-start.sh +2 -2
- package/integrations/README.md +70 -76
- package/integrations/claude/README.md +0 -3
- package/integrations/codex/README.md +1 -2
- package/integrations/copilot-jetbrains/README.md +1 -1
- package/integrations/cursor/README.md +1 -2
- package/integrations/factory/README.md +15 -11
- package/integrations/mistral-vibe/README.md +1 -1
- package/integrations/opencode/README.md +1 -1
- package/integrations/roo-code/README.md +1 -1
- package/integrations/rovo-dev/README.md +1 -1
- package/integrations/trae/README.md +1 -1
- package/integrations/windsurf/README.md +3 -3
- package/library/references/collaborative-protocol/collaborative-protocol.md +5 -5
- package/library/references/gd-style/gd-style.md +4 -6
- package/library/references/godot-version/godot-version.md +3 -3
- package/library/references/headless-routing/headless-routing.md +2 -2
- package/library/references/mcp-fresh-chat-playbook/mcp-fresh-chat-playbook.md +2 -2
- package/library/references/mcp-tools-reference/mcp-tools-reference.md +18 -16
- package/library/references/product-map/product-map.md +1 -1
- package/library/references/public-surface-language/public-surface-language.md +1 -1
- package/library/references/summer-folder/summer-folder.md +1 -1
- package/library/skills/3d-lighting/SKILL.md +4 -4
- package/library/skills/README.md +11 -9
- package/library/skills/adaptive-music/SKILL.md +7 -7
- package/library/skills/ai-characters-in-games/SKILL.md +1 -1
- package/library/skills/ambient-bed/SKILL.md +12 -14
- package/library/skills/animated-loop/SKILL.md +42 -42
- package/library/skills/animation-tree/SKILL.md +6 -6
- package/library/skills/art-direction/SKILL.md +8 -11
- package/library/skills/asset-strategy/SKILL.md +3 -3
- package/library/skills/audio-direction/SKILL.md +8 -10
- package/library/skills/auto-fire-targeting/SKILL.md +4 -3
- package/library/skills/bounded-engine-runs/SKILL.md +95 -0
- package/library/skills/bounded-engine-runs/resource.yaml +29 -0
- package/library/skills/brainstorm-game/SKILL.md +5 -5
- package/library/skills/brainstorming/SKILL.md +9 -15
- package/library/skills/celeste-momentum-platforming/SKILL.md +8 -13
- package/library/skills/celeste-momentum-platforming/resource.yaml +1 -1
- package/library/skills/character-animation-wiring/SKILL.md +2 -2
- package/library/skills/character-model/SKILL.md +15 -26
- package/library/skills/character-movement/SKILL.md +1 -1
- package/library/skills/character-movement/references/movement-3d.md +1 -1
- package/library/skills/character-portrait/SKILL.md +4 -4
- package/library/skills/cinematic-cutscene/SKILL.md +38 -38
- package/library/skills/combat-basics/SKILL.md +1 -1
- package/library/skills/compatibility-renderer-traps/SKILL.md +78 -0
- package/library/skills/compatibility-renderer-traps/resource.yaml +28 -0
- package/library/skills/concept-art/SKILL.md +4 -4
- package/library/skills/create-asset-sheet/SKILL.md +12 -31
- package/library/skills/debug/SKILL.md +5 -4
- package/library/skills/debugging-game-feel/SKILL.md +1 -4
- package/library/skills/debugging-game-feel/resource.yaml +1 -1
- package/library/skills/design-level/SKILL.md +5 -5
- package/library/skills/design-mechanic/SKILL.md +6 -6
- package/library/skills/design-npc/SKILL.md +8 -15
- package/library/skills/diagnosing-perf-regressions/SKILL.md +5 -10
- package/library/skills/dispatching-parallel-agents/SKILL.md +1 -19
- package/library/skills/environment-kit/SKILL.md +5 -5
- package/library/skills/export-and-ship/SKILL.md +25 -24
- package/library/skills/fabricating-assets/SKILL.md +1 -1
- package/library/skills/facial-and-lipsync/SKILL.md +5 -5
- package/library/skills/fps-controller/SKILL.md +17 -16
- package/library/skills/fps-controller/resource.yaml +0 -2
- package/library/skills/game-feel/SKILL.md +6 -7
- package/library/skills/gameskill/SKILL.md +3 -3
- package/library/skills/gdscript-patterns/SKILL.md +3 -3
- package/library/skills/generate-motion/SKILL.md +5 -22
- package/library/skills/godogen-visual-proof-game-generation/SKILL.md +72 -90
- package/library/skills/godogen-visual-proof-game-generation/resource.yaml +0 -1
- package/library/skills/headless-scripting/SKILL.md +8 -8
- package/library/skills/headless-scripting/resource.yaml +1 -0
- package/library/skills/in-game-purchases/SKILL.md +123 -118
- package/library/skills/in-game-purchases/resource.yaml +2 -2
- package/library/skills/instantiate-asset-pack/SKILL.md +7 -3
- package/library/skills/investigating-bugs/SKILL.md +3 -11
- package/library/skills/investigating-bugs/condition-based-waiting.md +0 -10
- package/library/skills/investigating-bugs/root-cause-tracing.md +0 -8
- package/library/skills/lumera-single-image-scene-reconstruction/SKILL.md +15 -15
- package/library/skills/lumera-single-image-scene-reconstruction/resource.yaml +0 -1
- package/library/skills/make-game/SKILL.md +3 -5
- package/library/skills/make-game/references/2d-platformer.md +1 -1
- package/library/skills/multiplayer-project/SKILL.md +1 -1
- package/library/skills/multiplayer-testing/SKILL.md +4 -4
- package/library/skills/music-track/SKILL.md +40 -38
- package/library/skills/new-project/SKILL.md +4 -6
- package/library/skills/organic-model/SKILL.md +9 -9
- package/library/skills/pixel-art/SKILL.md +6 -6
- package/library/skills/play/SKILL.md +3 -4
- package/library/skills/playtesting-a-feature/SKILL.md +4 -6
- package/library/skills/procedural-animation/SKILL.md +10 -11
- package/library/skills/prop-model/SKILL.md +4 -4
- package/library/skills/psx-retro-rendering/SKILL.md +20 -20
- package/library/skills/psx-retro-rendering/resource.yaml +2 -3
- package/library/skills/realtime-wet-surfaces/SKILL.md +15 -15
- package/library/skills/realtime-wet-surfaces/resource.yaml +1 -2
- package/library/skills/remote-deploy/SKILL.md +20 -21
- package/library/skills/retarget/SKILL.md +19 -23
- package/library/skills/running-in-the-cloud/SKILL.md +5 -5
- package/library/skills/scene-composition/SKILL.md +5 -5
- package/library/skills/scene-hierarchy-design/SKILL.md +3 -3
- package/library/skills/scene-hierarchy-design/resource.yaml +0 -1
- package/library/skills/scene-scripting/SKILL.md +3 -3
- package/library/skills/scene-to-level/SKILL.md +28 -31
- package/library/skills/skill-create/SKILL.md +1 -1
- package/library/skills/skill-improve/SKILL.md +9 -9
- package/library/skills/skill-test/SKILL.md +10 -10
- package/library/skills/skintokens-auto-rigging/SKILL.md +18 -18
- package/library/skills/skintokens-auto-rigging/resource.yaml +3 -3
- package/library/skills/skybox-panorama/SKILL.md +8 -9
- package/library/skills/sound-effect/SKILL.md +19 -19
- package/library/skills/spatial-placement/SKILL.md +2 -2
- package/library/skills/spatial-placement/references/kit-placement-tools.md +12 -22
- package/library/skills/sprite-sheet/SKILL.md +10 -10
- package/library/skills/summer-analytics/SKILL.md +3 -3
- package/library/skills/summer-friends/SKILL.md +10 -10
- package/library/skills/summer-leaderboards/SKILL.md +6 -6
- package/library/skills/summer-match-results/SKILL.md +13 -13
- package/library/skills/summer-matchmaking/SKILL.md +11 -11
- package/library/skills/summer-parties/SKILL.md +9 -9
- package/library/skills/summer-player-data/SKILL.md +12 -12
- package/library/skills/summer-store/SKILL.md +6 -6
- package/library/skills/summer-world-chat/SKILL.md +9 -9
- package/library/skills/summer-world-saves/SKILL.md +7 -7
- package/library/skills/text-to-motion/rigging-for-text-motion.md +1 -1
- package/library/skills/tileable-texture/SKILL.md +1 -1
- package/library/skills/trailer-shot/SKILL.md +36 -36
- package/library/skills/tune-performance/SKILL.md +13 -13
- package/library/skills/tune-performance/resource.yaml +1 -1
- package/library/skills/ui-graphics/SKILL.md +7 -7
- package/library/skills/use-widget-asset/SKILL.md +7 -7
- package/library/skills/using-summer/SKILL.md +5 -7
- package/library/skills/vehicle-model/SKILL.md +6 -7
- package/library/skills/vehicle-model/resource.yaml +2 -2
- package/library/skills/verification-before-completion/SKILL.md +5 -6
- package/library/skills/vfx-dissolve/SKILL.md +4 -4
- package/library/skills/vfx-fire/SKILL.md +6 -6
- package/library/skills/vfx-fire/_building-blocks/additive-billboard-particles.md +3 -3
- package/library/skills/vfx-hit-spark/SKILL.md +4 -4
- package/library/skills/vfx-hit-spark/_building-blocks/additive-billboard-particles.md +3 -3
- package/library/skills/vfx-lightning/SKILL.md +5 -5
- package/library/skills/vfx-lightning/_building-blocks/additive-billboard-particles.md +3 -3
- package/library/skills/vfx-lightning/_building-blocks/trauma-shake-snippet.md +9 -3
- package/library/skills/vfx-magic-glow/SKILL.md +4 -4
- package/library/skills/vfx-magic-glow/_building-blocks/additive-billboard-particles.md +3 -3
- package/library/skills/vfx-muzzle-flash/SKILL.md +5 -5
- package/library/skills/vfx-muzzle-flash/_building-blocks/additive-billboard-particles.md +3 -3
- package/library/skills/vfx-muzzle-flash/_building-blocks/trauma-shake-snippet.md +9 -3
- package/library/skills/vfx-smoke/SKILL.md +5 -5
- package/library/skills/vfx-water-ripple/SKILL.md +2 -2
- package/library/skills/vfx-water-ripple/_building-blocks/additive-billboard-particles.md +3 -3
- package/library/skills/voice-line/SKILL.md +9 -9
- package/library/skills/web-compatibility-look/resource.yaml +1 -0
- package/library/skills/world-building-3d/references/spatial-tools.md +2 -2
- package/library/skills/writing-plans/SKILL.md +4 -4
- package/library/skills/writing-skills/SKILL.md +8 -8
- package/library/tools/capture-gameplay/resource.yaml +73 -0
- package/library/tools/creator-publish/resource.yaml +4 -4
- package/library/tools/creator-releases/resource.yaml +5 -5
- package/library/tools/generate-image/resource.yaml +15 -1
- package/library/tools/publish-build/resource.yaml +6 -2
- package/package.json +1 -1
- package/registry/generated/aliases.json +1 -0
- package/registry/generated/counts.json +3 -3
- package/registry/generated/gemini-extension.json +3 -1
- package/registry/generated/index.json +248 -135
- package/registry/generated/marketplace.claude.json +2 -2
- package/registry/generated/plugin.claude.json +4 -2
- package/registry/generated/plugin.codex.json +5 -3
- package/registry/generated/plugin.cursor.json +4 -2
- package/registry/generated/plugin.factory.json +4 -2
- package/registry/generated/skills-index.md +11 -9
- package/registry/generated/skills-registry.json +33 -6
- package/registry/schemas/domains.json +1 -1
|
@@ -1,25 +1,29 @@
|
|
|
1
|
-
# Factory
|
|
1
|
+
# Factory Droid integration
|
|
2
|
+
|
|
3
|
+
`summer setup factory` (aliases: `droid`, `factory-droid`) writes:
|
|
4
|
+
|
|
5
|
+
- MCP config: `~/.factory/mcp.json`; Windows `%USERPROFILE%/.factory/mcp.json` (user); `.factory/mcp.json` (project).
|
|
6
|
+
Shape: `mcpServers.summer-engine = { type: "stdio", command, args }`.
|
|
7
|
+
- Skills: `~/.agents/skills` (user) or `.agents/skills` (project) as `<skill>/SKILL.md`.
|
|
8
|
+
- After: Restart droid or run /mcp in the active session.
|
|
2
9
|
|
|
3
10
|
Generated by `scripts/generate-registry` from `library/**/resource.yaml`:
|
|
4
11
|
|
|
5
12
|
- `registry/generated/plugin.factory.json` -> `.factory-plugin/plugin.json`
|
|
6
|
-
(metadata manifest
|
|
7
|
-
`./library/skills/<slug
|
|
8
|
-
was a bug fixed by generation; version stamped from `package.json`).
|
|
13
|
+
(metadata manifest with the full skill list at
|
|
14
|
+
`./library/skills/<slug>/`; version stamped from `package.json`).
|
|
9
15
|
|
|
10
|
-
|
|
11
|
-
Install through the plugin marketplace instead:
|
|
16
|
+
The plugin marketplace is an alternative install:
|
|
12
17
|
|
|
13
18
|
```
|
|
14
19
|
droid plugin marketplace add https://github.com/summerengine/summer
|
|
15
20
|
droid plugin install summer@summer-engine --scope user
|
|
16
21
|
```
|
|
17
22
|
|
|
18
|
-
|
|
19
|
-
skills
|
|
20
|
-
manifest field, so the array in `plugin.factory.json` is inert and
|
|
21
|
-
|
|
22
|
-
gap; fix is a root `skills/` layout, not a setup target.
|
|
23
|
+
A plugin install reads MCP servers from the root `.mcp.json` (generated) and
|
|
24
|
+
skills only from a root `skills/<name>/SKILL.md` directory. Factory has no
|
|
25
|
+
`skills` manifest field, so the array in `plugin.factory.json` is inert and the
|
|
26
|
+
plugin install exposes no skills. Use `summer setup factory` to get the skills.
|
|
23
27
|
|
|
24
28
|
Never edit the destination file by hand — edit `library/` resources or
|
|
25
29
|
`scripts/generate-registry/manifests.ts`, then run
|
|
@@ -5,7 +5,7 @@ is intentionally empty. Support is delivered at install time by
|
|
|
5
5
|
`summer setup mistral-vibe` (aliases: `vibe`, `mistral`), which writes:
|
|
6
6
|
|
|
7
7
|
- MCP config: `~/.vibe/config.toml`; Windows `%USERPROFILE%/.vibe/config.toml` (user); `.vibe/config.toml` (project).
|
|
8
|
-
Shape:
|
|
8
|
+
Shape: a `[[mcp_servers]]` entry with `name`, `transport`, `command`, `args` (TOML).
|
|
9
9
|
- Skills: `~/.vibe/skills` (user) or `.agents/skills` (project) as `<skill>/SKILL.md`.
|
|
10
10
|
- After: Restart Vibe so it reloads config.toml.
|
|
11
11
|
|
|
@@ -6,7 +6,7 @@ is intentionally empty. Support is delivered at install time by
|
|
|
6
6
|
|
|
7
7
|
- MCP config: `~/.config/opencode/opencode.json`; Windows `%APPDATA%/opencode/opencode.json` (user); `opencode.json` (project).
|
|
8
8
|
Shape: `mcp.summer-engine = { type: "local", command: [npx, ...], enabled: true }`.
|
|
9
|
-
- Skills: `~/.agents/skills` (user) or `.agents/skills` (project) as `<skill>/SKILL.md`. OpenCode loads skills from this folder on the next session. Summer
|
|
9
|
+
- Skills: `~/.agents/skills` (user) or `.agents/skills` (project) as `<skill>/SKILL.md`. OpenCode loads skills from this folder on the next session. `--force` also removes skill copies that older Summer versions wrote under `opencode/agents/summer` and `opencode/skills`.
|
|
10
10
|
- After: Restart OpenCode so it reloads opencode.json.
|
|
11
11
|
|
|
12
12
|
Source of truth: `src/installer/agent-table.ts` (one row per agent).
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Roo Code integration
|
|
2
2
|
|
|
3
|
-
> **Legacy.** Roo Code
|
|
3
|
+
> **Legacy.** Roo Code is no longer maintained. The target still works; consider Cline or Kilo Code.
|
|
4
4
|
|
|
5
5
|
No manifest file is generated in this repo for Roo Code — `manifest-target.json`
|
|
6
6
|
is intentionally empty. Support is delivered at install time by
|
|
@@ -5,7 +5,7 @@ is intentionally empty. Support is delivered at install time by
|
|
|
5
5
|
`summer setup rovo-dev` (aliases: `rovodev`, `rovo`, `atlassian-rovo-dev`), which writes:
|
|
6
6
|
|
|
7
7
|
- MCP config: `~/.rovodev/mcp.json`; Windows `%USERPROFILE%/.rovodev/mcp.json` (user); user scope only (project requests fall back with a warning).
|
|
8
|
-
Shape:
|
|
8
|
+
Shape: `mcpServers.summer-engine = { command, args, transport: "stdio" }`.
|
|
9
9
|
- Skills: `~/.agents/skills` (user) or `.agents/skills` (project) as `<skill>/SKILL.md`.
|
|
10
10
|
- After: Restart Rovo Dev CLI so it reconnects its MCP servers.
|
|
11
11
|
|
|
@@ -4,7 +4,7 @@ No manifest file is generated in this repo for Trae — `manifest-target.json`
|
|
|
4
4
|
is intentionally empty. Support is delivered at install time by
|
|
5
5
|
`summer setup trae` (aliases: `trae-ide`, `bytedance-trae`), which writes:
|
|
6
6
|
|
|
7
|
-
- MCP config: `.trae/mcp.json` (
|
|
7
|
+
- MCP config: `.trae/mcp.json` (project only; Trae manages user-level servers in its UI, so a user-scope request writes the project file with a warning).
|
|
8
8
|
Shape: `mcpServers.summer-engine = { command, args }`.
|
|
9
9
|
- Skills: none. Trae documents no skills folder; the MCP server ships summer_get_agent_playbook for in-chat guidance.
|
|
10
10
|
- After: Restart Trae and open the MCP settings; summer-engine should show as connected.
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
# Devin Desktop
|
|
1
|
+
# Devin Desktop integration
|
|
2
2
|
|
|
3
|
-
No manifest file is generated in this repo for Devin Desktop
|
|
3
|
+
No manifest file is generated in this repo for Devin Desktop — `manifest-target.json`
|
|
4
4
|
is intentionally empty. Support is delivered at install time by
|
|
5
5
|
`summer setup windsurf` (aliases: `devin`, `devin-desktop`, `devindesktop`), which writes:
|
|
6
6
|
|
|
7
7
|
- MCP config: `~/.codeium/windsurf/mcp_config.json`; Windows `%USERPROFILE%/.codeium/windsurf/mcp_config.json` (user); user scope only (project requests fall back with a warning).
|
|
8
8
|
Shape: `mcpServers.summer-engine = { command, args }`.
|
|
9
9
|
- Skills: `~/.agents/skills` (user) or `.agents/skills` (project) as `<skill>/SKILL.md`.
|
|
10
|
-
- After: Restart Devin Desktop
|
|
10
|
+
- After: Restart Devin Desktop and refresh MCP servers from the agent settings. Devin's docs say mcp_config.json configures the Cascade agent; for the Devin agent add the server in the app's MCP settings with the same command.
|
|
11
11
|
|
|
12
12
|
Source of truth: `src/installer/agent-table.ts` (one row per agent).
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Collaborative Protocol — "May I write?"
|
|
2
2
|
|
|
3
|
-
> Every Summer skill
|
|
3
|
+
> Every Summer skill follows this rule.
|
|
4
4
|
|
|
5
5
|
## The rule
|
|
6
6
|
|
|
@@ -13,7 +13,7 @@ This applies to:
|
|
|
13
13
|
- Setting up project-wide settings (`project.godot`)
|
|
14
14
|
- Installing tools, libraries, or templates
|
|
15
15
|
|
|
16
|
-
Reading
|
|
16
|
+
Reading needs no permission: inspection, scene-tree walks and diagnostics run without asking.
|
|
17
17
|
|
|
18
18
|
## Phrasing
|
|
19
19
|
|
|
@@ -42,9 +42,9 @@ Plain, short, action-first. Examples:
|
|
|
42
42
|
|
|
43
43
|
## Linter check
|
|
44
44
|
|
|
45
|
-
The `
|
|
46
|
-
- "May I"
|
|
45
|
+
The `skill-test` skill's static check looks for one of these phrases:
|
|
46
|
+
- "May I"
|
|
47
47
|
- "I'm about to"
|
|
48
48
|
- "Continue?" / "OK?" / "Proceed?"
|
|
49
49
|
|
|
50
|
-
A skill that
|
|
50
|
+
A skill that triggers user-visible writes but never says any of these fails the check. Read-only skills are exempt.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# GDScript Style — Summer Conventions
|
|
2
2
|
|
|
3
|
-
>
|
|
3
|
+
> Skills produce GDScript that matches this. Where the upstream GDScript style guide is silent, this file decides.
|
|
4
4
|
|
|
5
5
|
## File structure
|
|
6
6
|
|
|
@@ -43,7 +43,7 @@ func _physics_process(delta: float) -> void:
|
|
|
43
43
|
func _input(event: InputEvent) -> void:
|
|
44
44
|
pass
|
|
45
45
|
|
|
46
|
-
# 7. Public API (
|
|
46
|
+
# 7. Public API (snake_case)
|
|
47
47
|
func take_damage(amount: int) -> void:
|
|
48
48
|
pass
|
|
49
49
|
|
|
@@ -115,7 +115,5 @@ tween.tween_property(self, "modulate", Color.WHITE, 0.3)
|
|
|
115
115
|
|
|
116
116
|
## See also
|
|
117
117
|
|
|
118
|
-
- [
|
|
119
|
-
- `
|
|
120
|
-
- `scripting-patterns/signal-patterns/SKILL.md` — signal usage
|
|
121
|
-
- `scripting-patterns/state-machine-patterns/SKILL.md` — state machine patterns
|
|
118
|
+
- [Upstream GDScript style guide](https://docs.godotengine.org/en/stable/tutorials/scripting/gdscript/gdscript_styleguide.html)
|
|
119
|
+
- The `gdscript-patterns` skill: patterns and idioms, including signals
|
|
@@ -18,8 +18,8 @@ running engine also reports its measured technical version:
|
|
|
18
18
|
<engineBinaryPath> --version # e.g. 4.6.1.stable.mono.custom_build.<hash>
|
|
19
19
|
```
|
|
20
20
|
|
|
21
|
-
Get `engineBinaryPath` from `summer_get_project_context`. Prefer live
|
|
22
|
-
|
|
21
|
+
Get `engineBinaryPath` from `summer_get_project_context`. Prefer the live
|
|
22
|
+
version to a copied version string. Creator onboarding and headlines should
|
|
23
23
|
say Summer Engine, Summer game, Summer SDK, and GDScript. Use the upstream name
|
|
24
24
|
only where technical compatibility, migration, extension APIs, contribution
|
|
25
25
|
routing, attribution, or licensing requires it.
|
|
@@ -40,7 +40,7 @@ routing, attribution, or licensing requires it.
|
|
|
40
40
|
## Summer-specific deltas from the upstream engine
|
|
41
41
|
|
|
42
42
|
- Local API server runs on `localhost:6550` by default (the port increments when several editors are open; each live editor publishes its port in `~/.summer/instances/<id>.json`, and the shared token lives in `~/.summer/api-token`).
|
|
43
|
-
-
|
|
43
|
+
- The editor carries Summer's own modules (including a webview). Do not assume the
|
|
44
44
|
unmodified upstream editor for UI patches.
|
|
45
45
|
- Project root contains `.summer/` for project memory; do not delete it.
|
|
46
46
|
|
|
@@ -15,12 +15,12 @@ Only file, import, scene-read, and game run/stop/logs/screenshot operations work
|
|
|
15
15
|
## Ships dark
|
|
16
16
|
|
|
17
17
|
- Enabled by `SUMMER_HEADLESS_ROUTING=1`. Unset, the module is not loaded at all and nothing changes.
|
|
18
|
-
- Requires an engine build that ships the worker mode and process registry
|
|
18
|
+
- Requires an engine build that ships the worker mode and process registry. On builds without it, leave the flag off.
|
|
19
19
|
- With the flag on and an editor open, the editor path is used unchanged — caching, credential-drift reconnects, and identity binding all behave as before.
|
|
20
20
|
|
|
21
21
|
## What an agent should expect
|
|
22
22
|
|
|
23
|
-
- Errors from this layer are prefixed `[headless:<stage>]` where stage is one of `connect`, `auth`, `op`, `spawn`, so
|
|
23
|
+
- Errors from this layer are prefixed `[headless:<stage>]` where stage is one of `connect`, `auth`, `op`, `spawn`, so "could not reach the worker" and "the worker went quiet mid-import" read differently.
|
|
24
24
|
- A first call with no editor and no worker can take up to two minutes while the worker starts and imports the project. Later calls are fast.
|
|
25
25
|
- **No blind retries.** If a mutating operation (write, import, run, stop) times out or the worker connection drops, the outcome is reported as UNKNOWN and the connection is quarantined. Inspect the target (read the file, check the scene) before retrying. There is deliberately no automatic reconnect or replay.
|
|
26
26
|
- Worker error strings start with a snake_case classifier (`sha256_mismatch`, `already_exists`, `needs_display`). `needs_display` on a screenshot means the machine has no display; open the project in the editor for screenshots.
|
|
@@ -4,10 +4,10 @@ The minimum safe workflow for AI agents building in a Summer Engine project.
|
|
|
4
4
|
|
|
5
5
|
## Build flow (default)
|
|
6
6
|
|
|
7
|
-
1. **Understand** the request
|
|
7
|
+
1. **Understand** the request and outline a short plan.
|
|
8
8
|
2. **Call `summer_get_project_context` first** so you don't guess scene paths or the project language and so the MCP session binds to the open project. Use `projectMemory` to decide which `.summer` files to read.
|
|
9
9
|
3. **Edit through identity-bound Summer tools.** Use `summer_read_file`, `summer_replace_text`, and guarded `summer_write_file` for `.gd`, `.tscn`, `.tres`, `.cs`, `.json`, docs, and config. Write GDScript by default; use C# only if the project already uses it.
|
|
10
|
-
4. **Play and iterate.** After writing code, **play the scene you just made** and read `summer_get_diagnostics`; fix and repeat until it launches clean
|
|
10
|
+
4. **Play and iterate.** After writing code, **play the scene you just made** and read `summer_get_diagnostics`; fix and repeat until it launches clean. Do not wait for the user to find the first error.
|
|
11
11
|
|
|
12
12
|
## When to use Summer MCP (the live engine)
|
|
13
13
|
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
# Summer MCP Tools — Canonical Reference
|
|
2
2
|
|
|
3
|
-
>
|
|
3
|
+
> Which Summer MCP tool to call. Skills reference tool names exactly as written here.
|
|
4
4
|
|
|
5
5
|
## When to use Summer MCP vs. host tools
|
|
6
6
|
|
|
7
|
-
**Use Summer MCP for** anything that needs the live editor or
|
|
7
|
+
**Use Summer MCP for** anything that needs the live editor or the engine's import pipeline:
|
|
8
8
|
- Scene graph mutation (`.tscn`)
|
|
9
9
|
- Node properties and resources (`.tres`)
|
|
10
10
|
- Project settings (`project.godot`) and InputMap
|
|
11
|
-
- Asset import (
|
|
11
|
+
- Asset import (the import pipeline must run)
|
|
12
12
|
- Play / stop / runtime state
|
|
13
13
|
- Diagnostics, console, debugger output, script errors
|
|
14
14
|
- Project text reads and guarded writes (`.gd`, `.cs`, `.tscn`, `.tres`, JSON, docs, config)
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
|
|
18
18
|
**Rule of thumb:** project reads/writes go through Summer; live hierarchy/inspector changes use scene tools; process-level work remains with the host.
|
|
19
19
|
|
|
20
|
-
## Tool surface (
|
|
20
|
+
## Tool surface (105 tools)
|
|
21
21
|
|
|
22
22
|
### Project files (4)
|
|
23
23
|
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
| `summer_write_file` | Create-only or sha256-guarded complete file write. |
|
|
29
29
|
| `summer_replace_text` | Unique (or explicit replace-all) text mutation with read/sha guard. |
|
|
30
30
|
|
|
31
|
-
### Scene graph (
|
|
31
|
+
### Scene graph (12)
|
|
32
32
|
|
|
33
33
|
| Tool | Use |
|
|
34
34
|
|---|---|
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
|
|
50
50
|
| Tool | Use |
|
|
51
51
|
|---|---|
|
|
52
|
-
| `summer_set_prop` | Set a typed property in an explicit `scenePath` using
|
|
52
|
+
| `summer_set_prop` | Set a typed property in an explicit `scenePath` using `str_to_var()`. |
|
|
53
53
|
| `summer_set_resource_property` | Set a nested resource property in an explicit `scenePath`. |
|
|
54
54
|
| `summer_inspect_resource` | Read a resource FILE (`path`): a Mesh `.res` gives AABB, surfaces (primitive, vertex/index counts, attributes, triangles, material) and materials; a `.tscn`/`.glb` gives its nodes and meshes; anything else its non-default editor properties. Or a resource a node of the active scene holds (`nodePath` + `property`). |
|
|
55
55
|
| `summer_connect_signal` | Wire a signal between nodes in the explicit `scenePath` (a `.tscn`). Connects with `CONNECT_PERSIST` through a RunSceneScript probe (the engine's ConnectSignal op never saves the connection), saves, and returns `persisted:true` / `verified:true` only when the saved file holds the `[connection]` line; otherwise `failure_reason: not_persisted`. |
|
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
|
|
66
66
|
| Tool | Use |
|
|
67
67
|
|---|---|
|
|
68
|
-
| `summer_import_from_url` | Download a `.glb`/`.png`/etc and run
|
|
68
|
+
| `summer_import_from_url` | Download a `.glb`/`.png`/etc and run the engine's full import pipeline. |
|
|
69
69
|
| `summer_import_from_url_batch` | Same, batched (single filesystem scan). |
|
|
70
70
|
|
|
71
71
|
### Scene scripting (3)
|
|
@@ -84,7 +84,7 @@
|
|
|
84
84
|
|
|
85
85
|
### Editor UI control (4)
|
|
86
86
|
|
|
87
|
-
Preview
|
|
87
|
+
Preview: needs Summer Engine 0.5.66 or newer; older engines return `engine_lacks_op`. Scene work never goes through the editor UI (use the scene, scripting, and perception tools). UI ops are for editor-workflow steps a human does with the mouse — open Project Settings, switch the main screen, clear a blocking dialog, read a dock. Ladder: dedicated tool → named action → tree + activate → screenshot (pixels last, never for coordinates). Quit / project-reload / delete-without-confirm actions are denied by the engine. The `driving-the-editor-ui` skill carries the patterns.
|
|
88
88
|
|
|
89
89
|
| Tool | Use |
|
|
90
90
|
|---|---|
|
|
@@ -190,7 +190,7 @@ Preview. One fast, read-only call that walks every node of a 3D scene and lists
|
|
|
190
190
|
|
|
191
191
|
| Tool | Use |
|
|
192
192
|
|---|---|
|
|
193
|
-
| `summer_create_debug_report` | Create a support-ready Markdown report
|
|
193
|
+
| `summer_create_debug_report` | Create a support-ready Markdown report (same as `summer debug`). |
|
|
194
194
|
| `summer_get_diagnostics` | Aggregate error/warning summary. Call after every change. |
|
|
195
195
|
| `summer_get_console` | Engine output panel. |
|
|
196
196
|
| `summer_clear_console` | Clear before a fresh play, so post-run output is clean. |
|
|
@@ -206,9 +206,9 @@ Preview. One fast, read-only call that walks every node of a 3D scene and lists
|
|
|
206
206
|
| `summer_list_my_assets` | List/search the signed-in user's generated and uploaded assets. Empty query lists recent assets. |
|
|
207
207
|
| `summer_get_asset` | Fetch one exact asset by ID with file URL, download URL, viewer URL, metadata, license, and visibility. |
|
|
208
208
|
| `summer_get_asset_download_url` | Get the primary or thumbnail download URL for a specific asset. Stable shape for future signed URLs. |
|
|
209
|
-
| `summer_import_asset` | Search, choose the top match, download, run
|
|
209
|
+
| `summer_import_asset` | Search, choose the top match, download, run the engine import, and optionally instantiate 3D models. |
|
|
210
210
|
| `summer_import_asset_by_id` | Import one exact Summer asset ID. Use after generation jobs or when the user selects a specific asset. |
|
|
211
|
-
| `summer_import_hdri` | Search Poly Haven's CC0 HDRIs (public API, no Summer login), import the `.hdr`/`.exr` into `res://sky/`, and get the exact `summer_run_script` snippet that wires it as the WorldEnvironment sky.
|
|
211
|
+
| `summer_import_hdri` | Search Poly Haven's CC0 HDRIs (public API, no Summer login), import the `.hdr`/`.exr` into `res://sky/`, and get the exact `summer_run_script` snippet that wires it as the WorldEnvironment sky. |
|
|
212
212
|
| `summer_slice_asset_sheet` | Detect and crop every distinct asset from a generated sheet image into named individual assets (works without the engine; import the results afterwards). |
|
|
213
213
|
|
|
214
214
|
### Asset generation (5 — metered)
|
|
@@ -228,7 +228,7 @@ Preview. One fast, read-only call that walks every node of a 3D scene and lists
|
|
|
228
228
|
| `summer_check_job` | Poll a generation job. |
|
|
229
229
|
| `summer_batch` | Run multiple ops as a transaction. `InstantiateScene` ops may carry `position` / `rotation_degrees` / `scale` / `transform`; `receipt: "summary"` returns counts, failures with op index and created paths under 5 KB. A `ReparentNode` keeps the moved node's scene-owned children and grandchildren (the engine op drops them from the saved file) and is verified from the saved `.tscn` (`persisted:true` / `verified:true`, else `failure_reason: not_persisted`); a raw `ConnectSignal` is refused — use `summer_connect_signal`. `scenePersistence.saved` only means the SaveScene ran. |
|
|
230
230
|
|
|
231
|
-
### Meta (
|
|
231
|
+
### Meta (5)
|
|
232
232
|
|
|
233
233
|
| Tool | Use |
|
|
234
234
|
|---|---|
|
|
@@ -236,8 +236,9 @@ Preview. One fast, read-only call that walks every node of a 3D scene and lists
|
|
|
236
236
|
| `summer_get_studio_workflow` | Discover Summer Studio's guided workflow recipes (starter prompts, ordered steps, required tools) for a goal. |
|
|
237
237
|
| `summer_get_project_context` | Project, scene, and `.summer` memory summary — call at start of session. Binds the session to the open project and surfaces a `capabilitySkewWarning` when the engine build and CLI have drifted; tools whose op the engine provably lacks return a structured `engine_lacks_op` result instead of running. Compact by default (a few KB: `sceneSummary`, scalar `health` with capability counts); `include:['scene_tree','capabilities','settings']` adds the heavy blocks, `omitted` says how. |
|
|
238
238
|
| `summer_get_agent_playbook` | Daily operating contract (observe-first loop, content routing, invariants, verification ritual) — call at start of session. Also served natively as the `summer_agent_playbook` MCP prompt. |
|
|
239
|
+
| `summer_get_board` | Read the person's approved planning board (look, characters, place, storyboard, picks), with the look and picked cards as images to compare screenshots against. Needs the project id from the build brief; works without the engine. |
|
|
239
240
|
|
|
240
|
-
### Creator platform (
|
|
241
|
+
### Creator platform (7)
|
|
241
242
|
|
|
242
243
|
| Tool | Use |
|
|
243
244
|
|---|---|
|
|
@@ -245,8 +246,9 @@ Preview. One fast, read-only call that walks every node of a 3D scene and lists
|
|
|
245
246
|
| `summer_export_templates` | `list` or `install` export templates from Summer's CDN (`downloads.summer.games/engine-templates/<summerVersion>/manifest.json`) into the engine's user template folder (`<data>/Godot/export_templates/<FULL_CONFIG>/`), sha256-checked. Only download exports need them; store bundles need none. `summerVersion` is read on macOS, passed elsewhere. |
|
|
246
247
|
| `summer_publish_build` | Upload that `.zip` to the creator's game through Studio's store upload: confirm-gated preview first, then declare, part upload from disk, seal, wait for the Build, name its client pack; `publish:true` also approves it. Needs `summer login --store`; a retry with the same file and version continues the same upload. |
|
|
247
248
|
| `summer_creator_publish` | **Deprecated** (use the two tools above). Compute the exact `.pck` digest and size, require user confirmation, then run versioned prepare → write-once upload → finalize. The server independently verifies `publish` scope, ownership, bytes, and review state. |
|
|
248
|
-
| `summer_creator_releases` |
|
|
249
|
+
| `summer_creator_releases` | **Deprecated.** Lists releases on the legacy creator API. For summer.games use `summer_store_releases` (hosted, mounted after `summer login --store`). |
|
|
249
250
|
| `summer_creator_config` | Read or confirm updates to the shared non-secret `~/.summer/config.json`. It never accepts or returns tokens. |
|
|
251
|
+
| `summer_capture_gameplay` | Real gameplay frames without a running editor: starts the game (main scene or `scene`) in the engine's offscreen verify instance (`--summer-verify`, real renderer, window parked offscreen, no focus) at `resolution` (default `1920x1080`), waits `waitSeconds`, saves `frames` PNGs (HUD included) to `<project>/.summer/captures/<time>/`. Imports the project first when `.godot/` is missing. Returns each path with its real width and height; warns when the stretch settings render another size. For store screenshots. |
|
|
250
252
|
|
|
251
253
|
### Library search (2)
|
|
252
254
|
|
|
@@ -287,7 +289,7 @@ Every asset-generation skill should follow this loop:
|
|
|
287
289
|
2. `summer_generate_image` / `summer_generate_3d` / `summer_generate_audio` — metered creation.
|
|
288
290
|
3. `summer_check_job` if the generation was async.
|
|
289
291
|
4. `summer_get_asset` — resolve the returned `assetId`, `rigAssetId`, or `animationAssetId`.
|
|
290
|
-
5. `summer_import_asset_by_id` — import the exact result
|
|
292
|
+
5. `summer_import_asset_by_id` — import the exact result through the engine's import pipeline.
|
|
291
293
|
6. `summer_get_asset_download_url` — only when the user explicitly wants a downloadable file/link.
|
|
292
294
|
|
|
293
295
|
## summer_set_resource_property — nested properties
|
|
@@ -304,7 +306,7 @@ summer_set_resource_property(
|
|
|
304
306
|
|
|
305
307
|
`nodePath`, `resourceProperty` and `subProperty` are all required and canonical. There is no dotted `"mesh.size"` form.
|
|
306
308
|
|
|
307
|
-
**Inline `sub_resource` targets work.**
|
|
309
|
+
**Inline `sub_resource` targets work.** You do not need to save the resource as a standalone `.tres` first: the op reads the node's property and sets the sub-property on whatever resource it holds. The canonical example in the shipped `summer_batch` description does exactly this against an inline mesh.
|
|
308
310
|
|
|
309
311
|
Structural failures are explicit:
|
|
310
312
|
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
## Who owns what
|
|
8
8
|
|
|
9
9
|
- **Web rows** come from summerengine.com's own route catalog (`/agent-routes.json`, published from the web repo's `src/lib/navigation/routes.ts`). The toolkit vendors a snapshot (`assets/navigation/web-routes.json`, refreshed with `npm run sync:web-routes`); it does not invent pages.
|
|
10
|
-
- **Editor rows** are ids of Summer Engine's one navigation table (
|
|
10
|
+
- **Editor rows** are ids of Summer Engine's one navigation table (the `Navigate` op). The running engine advertises which ids it can open in `/api/health` `capabilities.navigation`; `summer open --list` shows availability from the connected engine. Engines that predate the `Navigate` op can still serve the rows with a legacy op (last-but-one column); every other row answers `engine_lacks_op` with an update hint.
|
|
11
11
|
|
|
12
12
|
## How to read a row
|
|
13
13
|
|
|
@@ -13,7 +13,7 @@ Godot Engine remains relevant in narrow technical and legal contexts:
|
|
|
13
13
|
- upstream contributions, attribution, copyright, and licenses.
|
|
14
14
|
|
|
15
15
|
The current technical base is 4.6.1 and the approved next target is 4.7.1. The
|
|
16
|
-
source of truth is
|
|
16
|
+
source of truth is `src/core/summer-compatibility.ts`. Neither number is a
|
|
17
17
|
permanent Summer identity, so creator prompts and skills should not pin
|
|
18
18
|
themselves to one upstream release.
|
|
19
19
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# `.summer/` Folder Convention
|
|
2
2
|
|
|
3
|
-
> The
|
|
3
|
+
> The layout of project-scoped Summer state. Read this before writing a skill that writes design output, locked project memory, or agent-readable notes.
|
|
4
4
|
|
|
5
5
|
## Files at the root of `.summer/`
|
|
6
6
|
|
|
@@ -11,7 +11,7 @@ paths: ["**/*.tscn", "**/*.tres"]
|
|
|
11
11
|
|
|
12
12
|
# 3D Lighting for Summer Engine
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
Outdoor and indoor lighting setups for 3D scenes.
|
|
15
15
|
|
|
16
16
|
## Light Types
|
|
17
17
|
|
|
@@ -59,9 +59,9 @@ For a simple procedural sky:
|
|
|
59
59
|
summer_set_resource_property(nodePath="./World/WorldEnvironment", resourceProperty="environment", subProperty="background_mode", value="2")
|
|
60
60
|
```
|
|
61
61
|
|
|
62
|
-
|
|
62
|
+
A sky is a `Sky` resource in `environment.sky`, with a `ProceduralSkyMaterial` (or `PhysicalSkyMaterial`) in its `sky_material`. `summer_set_resource_property` only sets properties on a resource that already exists, so create the `Sky` and its material in one `summer_run_script` call.
|
|
63
63
|
|
|
64
|
-
**Simpler path:**
|
|
64
|
+
**Simpler path:** start from the `3d-basic` template, which already has a sky, and copy its structure.
|
|
65
65
|
|
|
66
66
|
### 3. Fill Light (Optional)
|
|
67
67
|
|
|
@@ -128,7 +128,7 @@ set the meshes' `gi_mode`, then run the bake yourself from `summer_run_script`
|
|
|
128
128
|
enum (0 is OK; `BAKE_ERROR_NO_LIGHTMAPPER` means no renderer in this process, not a
|
|
129
129
|
missing binding). Verify with a `framing:"camera"` screenshot, which renders the
|
|
130
130
|
real environment. Only fall back to "press Bake Lightmaps in the editor" when
|
|
131
|
-
|
|
131
|
+
no renderer is available. If they want GI with zero bake step,
|
|
132
132
|
steer to `SDFGI` (`Environment.sdfgi_enabled`) or `VoxelGI`.
|
|
133
133
|
|
|
134
134
|
Note the related trap: `Engine.has_singleton("EditorInterface")` returns **true**
|
package/library/skills/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Summer skills
|
|
2
2
|
|
|
3
|
-
>
|
|
3
|
+
> 118 skills, grouped by their primary domain. **Generated** by `npm run generate:registry` from each skill's `resource.yaml`; `--check` fails when this file and the library disagree. Do not edit by hand.
|
|
4
4
|
|
|
5
5
|
The folder is flat on purpose (`docs/design/DECISIONS.md`, D3): a skill usually belongs to several domains, so categories live in each skill's `facets.domains` and this index is rendered from them. The first domain listed is the primary one. `summer skills list --by-domain` prints the same grouping; `summer skills info <slug>` shows one skill.
|
|
6
6
|
|
|
@@ -10,7 +10,7 @@ Status: **stable** unless marked; *preview* = not yet exercised in-engine by the
|
|
|
10
10
|
|
|
11
11
|
- [2d](#2d) (10)
|
|
12
12
|
- [3d](#3d) (6)
|
|
13
|
-
- [agent-workflow](#agent-workflow) (
|
|
13
|
+
- [agent-workflow](#agent-workflow) (18)
|
|
14
14
|
- [ai](#ai) (2)
|
|
15
15
|
- [animation](#animation) (7)
|
|
16
16
|
- [assets](#assets) (3)
|
|
@@ -24,7 +24,7 @@ Status: **stable** unless marked; *preview* = not yet exercised in-engine by the
|
|
|
24
24
|
- [multiplayer](#multiplayer) (16)
|
|
25
25
|
- [navigation](#navigation) (1)
|
|
26
26
|
- [performance](#performance) (1)
|
|
27
|
-
- [rendering](#rendering) (
|
|
27
|
+
- [rendering](#rendering) (6)
|
|
28
28
|
- [runtime](#runtime) (1)
|
|
29
29
|
- [scenes](#scenes) (12)
|
|
30
30
|
- [scripting](#scripting) (2)
|
|
@@ -56,12 +56,13 @@ Status: **stable** unless marked; *preview* = not yet exercised in-engine by the
|
|
|
56
56
|
| [*fabricating-assets*](./fabricating-assets/SKILL.md) (preview) | Fabricate meshes with a bpy script in the user's own Blender (summer_fabricate_3d) — kits with exact dimensions, VFX meshes, post-processing generated models. | assets, scripting, agent-workflow |
|
|
57
57
|
| [organic-model](./organic-model/SKILL.md) | Generate organic 3D shapes — trees, rocks, mushrooms, coral, plants, vines, crystals — where AI artifacts read as natural irregularity. | assets |
|
|
58
58
|
| [prop-model](./prop-model/SKILL.md) ★ | Generate a single static 3D prop — sword, barrel, chest, lantern, throne, statue — one isolated object, no rigging, wired as a MeshInstance3D. | assets |
|
|
59
|
-
| [vehicle-model](./vehicle-model/SKILL.md) | Generate a hard-surface vehicle — car, spaceship, mech, boat, tank — static mesh with optional detail-texture pass, wired as
|
|
59
|
+
| [vehicle-model](./vehicle-model/SKILL.md) | Generate a hard-surface vehicle — car, spaceship, mech, boat, tank — static mesh with optional detail-texture pass, wired as VehicleBody3D or MeshInstance3D. | assets |
|
|
60
60
|
|
|
61
61
|
## agent-workflow
|
|
62
62
|
|
|
63
63
|
| skill | when to use | also |
|
|
64
64
|
|---|---|---|
|
|
65
|
+
| [*bounded-engine-runs*](./bounded-engine-runs/SKILL.md) ★ (preview) | Run Summer headless or offscreen safely from an agent: time limits, one engine per project, muted runs, import passes, tests that fail on crashes. | headless, verification |
|
|
65
66
|
| [brainstorming](./brainstorming/SKILL.md) ★ | Explore user intent, requirements, and design before implementation — must run before any creative work: features, components, mechanics, behavior. | game-design |
|
|
66
67
|
| [debugging-game-feel](./debugging-game-feel/SKILL.md) | Debug features that work but feel wrong — floaty jumps, mushy combat, sluggish camera — subjective bugs living in tuning, timing, and feedback layers. | gameplay |
|
|
67
68
|
| [diagnosing-perf-regressions](./diagnosing-perf-regressions/SKILL.md) | Find why frame rate, frame time, or load time got worse since a known-good state — regression hunting, not general performance tuning. | performance |
|
|
@@ -105,7 +106,7 @@ Status: **stable** unless marked; *preview* = not yet exercised in-engine by the
|
|
|
105
106
|
|---|---|---|
|
|
106
107
|
| [asset-strategy](./asset-strategy/SKILL.md) ★ | Route any 'I need a [thing]' asset request to the right specialist skill — disambiguates 2D / 3D / audio / video / VFX / animation pipelines. | pipeline |
|
|
107
108
|
| [*lumera-single-image-scene-reconstruction*](./lumera-single-image-scene-reconstruction/SKILL.md) (preview) | Lumera-style single image to editable 3D scene — VLM-parsed object boxes and parametric lights, per-object meshes, HDR probe, .tscn assembly, refinement loop. | pipeline, 3d, scenes |
|
|
108
|
-
| [*skintokens-auto-rigging*](./skintokens-auto-rigging/SKILL.md) (preview) | Offline auto-rigging with skin-tokens.cpp (GGML SkinTokens/TokenRig port) — skeleton and skin weights from a static GLB mesh on CPU/Vulkan, into
|
|
109
|
+
| [*skintokens-auto-rigging*](./skintokens-auto-rigging/SKILL.md) (preview) | Offline auto-rigging with skin-tokens.cpp (GGML SkinTokens/TokenRig port) — skeleton and skin weights from a static GLB mesh on CPU/Vulkan, into Summer Engine. | pipeline, 3d, animation |
|
|
109
110
|
|
|
110
111
|
## audio
|
|
111
112
|
|
|
@@ -152,7 +153,7 @@ Status: **stable** unless marked; *preview* = not yet exercised in-engine by the
|
|
|
152
153
|
| [*celeste-momentum-platforming*](./celeste-momentum-platforming/SKILL.md) (preview) | Celeste-style 2D precision platformer movement — momentum running, coyote time, variable jumps, dash, wall jump/slide, climb stamina, pixel corner correction. | character-controller, game-design |
|
|
153
154
|
| [*combat-basics*](./combat-basics/SKILL.md) (preview) | Damage in Summer Engine: hitbox and hurtbox Areas on opposing layers, a reusable Health component, damage signals, knockback, hit feedback, projectiles. | scripting, game-design |
|
|
154
155
|
| [design-mechanic](./design-mechanic/SKILL.md) ★ | Design one game mechanic in detail — input, response, feedback, failure modes, depth, tunables — outputs a design doc, node-graph sketch, GDScript stub. | game-design |
|
|
155
|
-
| [*in-game-purchases*](./in-game-purchases/SKILL.md) (preview) | Sell items for Sparks
|
|
156
|
+
| [*in-game-purchases*](./in-game-purchases/SKILL.md) (preview) | Sell items for Sparks in a game shop via the Summer purchase sheet: checkout, results, not enough Sparks, inventory unlocks, authority grants, store policy. | scripting, game-design |
|
|
156
157
|
| [*web-and-touch-input*](./web-and-touch-input/SKILL.md) ★ (preview) | Input for the browser and phones: the first-click rule for sound and mouse capture, focus, and touch buttons or a virtual stick on the same actions. | ui |
|
|
157
158
|
|
|
158
159
|
## level-design
|
|
@@ -193,7 +194,7 @@ Status: **stable** unless marked; *preview* = not yet exercised in-engine by the
|
|
|
193
194
|
|
|
194
195
|
| skill | when to use | also |
|
|
195
196
|
|---|---|---|
|
|
196
|
-
| [tune-performance](./tune-performance/SKILL.md) ★ | Profile a slow game
|
|
197
|
+
| [tune-performance](./tune-performance/SKILL.md) ★ | Profile a slow game with a measurement probe, identify rendering/physics/scripting hotspots, propose fixes with before/after metric expectations. | debug |
|
|
197
198
|
|
|
198
199
|
## rendering
|
|
199
200
|
|
|
@@ -201,8 +202,9 @@ Status: **stable** unless marked; *preview* = not yet exercised in-engine by the
|
|
|
201
202
|
|---|---|---|
|
|
202
203
|
| [3d-lighting](./3d-lighting/SKILL.md) ★ | Set up 3D scene lighting — DirectionalLight3D vs Omni vs Spot, WorldEnvironment, sky, shadow tuning, ambient — per current Summer conventions. | lighting |
|
|
203
204
|
| [art-direction](./art-direction/SKILL.md) ★ | Define the game's visual style — references, palette, mood, lighting plan, post-processing, do/don't list — output as an art bible at .summer/art-bible.md. | lighting |
|
|
204
|
-
| [*
|
|
205
|
-
| [*
|
|
205
|
+
| [*compatibility-renderer-traps*](./compatibility-renderer-traps/SKILL.md) ★ (preview) | Make a Forward+ Summer game also look right on the Compatibility renderer: instance-uniform budget, black MultiMesh colors, sRGB vertex colors. | performance |
|
|
206
|
+
| [*psx-retro-rendering*](./psx-retro-rendering/SKILL.md) (preview) | PlayStation 1 rendering in Summer Engine — low-res output, RGB5 and exact dither, affine textures, vertex snapping, blend modes, fog; limits named. | 3d |
|
|
207
|
+
| [*realtime-wet-surfaces*](./realtime-wet-surfaces/SKILL.md) (preview) | Real-time wetness on existing materials without losing their values — value-copying wet shader, geometry-driven wet mask, instance-uniform wet amount. | vfx |
|
|
206
208
|
| [*web-compatibility-look*](./web-compatibility-look/SKILL.md) ★ (preview) | Make a web or browser game look high-end in the Compatibility renderer (WebGL 2): what works, what to avoid, 2D and 3D recipes, web performance. | 2d, 3d |
|
|
207
209
|
|
|
208
210
|
## runtime
|
|
@@ -13,7 +13,7 @@ paths: ["audio/music/**", "scripts/audio/**", "**/*.tscn", "default_bus_layout.t
|
|
|
13
13
|
|
|
14
14
|
## Overview
|
|
15
15
|
|
|
16
|
-
This
|
|
16
|
+
This skill wires music; it does not generate it. It connects 3–5 music stems (or full tracks) to a game state machine so the music follows the player's situation — exploration → tension → combat → victory → exploration — with crossfades, ducking, and bus routing.
|
|
17
17
|
|
|
18
18
|
This skill assumes the stems already exist. If they don't, run `/music-track` first for each state, or generate matching stems (same tempo, same key, same bar count) so they layer/crossfade cleanly.
|
|
19
19
|
|
|
@@ -51,7 +51,7 @@ If the plan is absent, run `/audio-direction` step 6 first.
|
|
|
51
51
|
| **Vertical re-orchestration** | Same melody, different orchestration per state, snap on bar | All variants play simultaneously muted; swap on next bar boundary |
|
|
52
52
|
| **Procedural / generative** | Rules generate music in real-time | Beyond this skill; needs a custom system |
|
|
53
53
|
|
|
54
|
-
For
|
|
54
|
+
For most games, **horizontal sequencing** is right. It is cheaper to author and easier to swap.
|
|
55
55
|
|
|
56
56
|
### 3. Confirm stems exist (or generate them)
|
|
57
57
|
|
|
@@ -67,7 +67,7 @@ You need (typical case):
|
|
|
67
67
|
- (optional) `audio/music/boss.mp3` — distinct from combat
|
|
68
68
|
- (optional) `audio/music/victory.mp3` — short linear sting (4–8s)
|
|
69
69
|
|
|
70
|
-
If any are missing, run `/music-track` for each.
|
|
70
|
+
If any are missing, run `/music-track` for each. Use **the same BPM, key, time signature, and bar length** for all of them so they overlap cleanly.
|
|
71
71
|
|
|
72
72
|
### 4. Verify / extend the bus layout
|
|
73
73
|
|
|
@@ -294,7 +294,7 @@ Master
|
|
|
294
294
|
## Anti-patterns
|
|
295
295
|
|
|
296
296
|
- **Stems generated at different BPM/key.** They will not crossfade cleanly. Same BPM, same key, same bar count.
|
|
297
|
-
- **Restarting tracks on state change.** Players hear the restart
|
|
297
|
+
- **Restarting tracks on state change.** Players hear the restart. Always crossfade volumes; never `play()` mid-state.
|
|
298
298
|
- **No autoplay on the silent stems.** They can't fade in to phase if they never started.
|
|
299
299
|
- **Polling state in `_process`.** Use signals. Music director listens to `EventBus`, not to game state every frame.
|
|
300
300
|
- **Hardcoding volumes in `set_state`.** Use the table-driven `_apply_state` so adding a new state doesn't fork the function.
|
|
@@ -323,8 +323,8 @@ in Summer Engine.
|
|
|
323
323
|
|
|
324
324
|
## See also
|
|
325
325
|
|
|
326
|
-
- `audio
|
|
327
|
-
- `
|
|
328
|
-
- `
|
|
326
|
+
- `audio-direction` — defines the dynamic music plan and bus layout
|
|
327
|
+
- `music-track` — generates the stems
|
|
328
|
+
- `voice-line` — the voice bus that triggers ducking
|
|
329
329
|
- `../../references/godot-version/godot-version.md` — Summer compatibility for AudioServer
|
|
330
330
|
and Tween APIs
|
|
@@ -48,7 +48,7 @@ Not for scripted dialogue trees (design-npc) or for enemy behaviour.
|
|
|
48
48
|
|
|
49
49
|
## Top up and set limits
|
|
50
50
|
|
|
51
|
-
AI characters are paid from the Summer credits of the developer who turned them on
|
|
51
|
+
AI characters are paid from the Summer credits of the developer who turned them on. Cost depends on the models and voices you choose. Your dashboard shows spend as it happens, and your limits cap it. Players never pay. There is nothing to configure in the game project.
|
|
52
52
|
|
|
53
53
|
1. In Summer Studio, open the game and its **AI characters** section.
|
|
54
54
|
2. Add a persona per character: name, a plain-words description, an optional voice, reply length, a safe line in character, and the model (from the models the game allows, each marked fast or smart).
|