summer-engine 3.8.0 → 4.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/.claude-plugin/marketplace.json +2 -13
- package/.claude-plugin/plugin.json +24 -22
- package/.codex-plugin/plugin.json +18 -22
- package/.cursor-plugin/plugin.json +8 -14
- package/.factory-plugin/plugin.json +6 -13
- package/AGENTS.md +19 -12
- package/CHANGELOG.md +133 -0
- package/GEMINI.md +3 -3
- package/README.md +118 -37
- package/assets/icon.png +0 -0
- package/commands/start.md +71 -0
- package/commands/summer.md +3 -2
- package/dist/cli/banner.js +3 -0
- package/dist/cli/commands/config.js +3 -2
- package/dist/cli/commands/create.js +12 -3
- package/dist/cli/commands/list.d.ts +5 -0
- package/dist/cli/commands/list.js +30 -13
- package/dist/cli/commands/login.d.ts +27 -0
- package/dist/cli/commands/login.js +58 -12
- package/dist/cli/commands/memory.js +6 -2
- package/dist/cli/commands/ops.d.ts +64 -0
- package/dist/cli/commands/ops.js +329 -0
- package/dist/cli/commands/setup.d.ts +4 -0
- package/dist/cli/commands/setup.js +254 -26
- package/dist/cli/commands/skills.js +28 -11
- package/dist/cli/commands/status.d.ts +26 -0
- package/dist/cli/commands/status.js +36 -21
- package/dist/cli/index.js +7 -0
- package/dist/core/agent-host.d.ts +65 -0
- package/dist/core/agent-host.js +193 -0
- package/dist/core/capabilities/agent-playbook.d.ts +3 -0
- package/dist/core/capabilities/agent-playbook.js +54 -2
- package/dist/core/capabilities/apps.d.ts +33 -10
- package/dist/core/capabilities/apps.js +25 -12
- package/dist/core/capabilities/audit/args.d.ts +6 -6
- package/dist/core/capabilities/doctor.d.ts +3 -0
- package/dist/core/capabilities/doctor.js +20 -15
- package/dist/core/capabilities/fabricate-mesh.d.ts +4 -4
- package/dist/core/capabilities/game-task-plan.d.ts +12 -6
- package/dist/core/capabilities/game-task-plan.js +80 -5
- package/dist/core/capabilities/hdri-import.d.ts +2 -2
- package/dist/core/capabilities/motion-generation.d.ts +2 -2
- package/dist/core/capabilities/motion-generation.js +2 -2
- package/dist/core/capabilities/navigation/open.d.ts +6 -2
- package/dist/core/capabilities/navigation/open.js +3 -0
- package/dist/core/capabilities/placement.d.ts +23 -23
- package/dist/core/capabilities/publish-build.js +2 -0
- package/dist/core/capabilities/runtime-control.d.ts +42 -42
- package/dist/core/capabilities/scene-script-target.d.ts +17 -0
- package/dist/core/capabilities/scene-script-target.js +70 -0
- package/dist/core/capabilities/seeing/args.d.ts +16 -16
- package/dist/core/capabilities/sfx-choices.d.ts +4 -0
- package/dist/core/capabilities/sfx-choices.js +13 -6
- package/dist/core/capabilities/tool-dispatch.d.ts +12 -3
- package/dist/core/capabilities/tool-dispatch.js +81 -46
- package/dist/core/capabilities/ui-control.d.ts +2 -2
- package/dist/core/capabilities/world-snapshot.d.ts +4 -4
- package/dist/core/embeddings.d.ts +2 -0
- package/dist/core/embeddings.js +1 -1
- package/dist/core/error-codes.d.ts +62 -0
- package/dist/core/error-codes.js +97 -0
- package/dist/core/format.d.ts +2 -0
- package/dist/core/format.js +2 -1
- package/dist/core/hosted-mcp.d.ts +22 -0
- package/dist/core/hosted-mcp.js +56 -1
- package/dist/core/library-read.js +5 -0
- package/dist/core/library-search.d.ts +2 -2
- package/dist/core/library-search.js +2 -1
- package/dist/core/oauth.js +4 -0
- package/dist/core/ops/areas.d.ts +11 -0
- package/dist/core/ops/areas.js +24 -0
- package/dist/core/ops/catalog.d.ts +45 -0
- package/dist/core/ops/catalog.js +157 -0
- package/dist/core/ops/cloud.d.ts +64 -0
- package/dist/core/ops/cloud.js +198 -0
- package/dist/core/ops/contract.d.ts +120 -0
- package/dist/core/ops/contract.js +134 -0
- package/dist/core/ops/engine-answer.d.ts +25 -0
- package/dist/core/ops/engine-answer.js +117 -0
- package/dist/core/ops/engine.d.ts +55 -0
- package/dist/core/ops/engine.js +649 -0
- package/dist/core/ops/public-catalog.d.ts +48 -0
- package/dist/core/ops/public-catalog.js +56 -0
- package/dist/core/ops/save-files.d.ts +78 -0
- package/dist/core/ops/save-files.js +419 -0
- package/dist/core/ops/search.d.ts +8 -0
- package/dist/core/ops/search.js +187 -0
- package/dist/core/skills-registry.d.ts +16 -1
- package/dist/core/skills-registry.js +35 -2
- package/dist/core/telemetry.d.ts +32 -0
- package/dist/core/telemetry.js +38 -10
- package/dist/core/tool-profiles.d.ts +25 -0
- package/dist/core/tool-profiles.js +41 -0
- package/dist/installer/agent-config.d.ts +17 -4
- package/dist/installer/agent-config.js +27 -6
- package/dist/installer/agent-table.d.ts +12 -0
- package/dist/installer/agent-table.js +33 -9
- package/dist/installer/cli-permissions.d.ts +65 -0
- package/dist/installer/cli-permissions.js +182 -0
- package/dist/installer/setup.d.ts +4 -0
- package/dist/installer/setup.js +12 -4
- package/dist/installer/skills-refresh.d.ts +29 -0
- package/dist/installer/skills-refresh.js +261 -0
- package/dist/installer/version-check.d.ts +51 -11
- package/dist/installer/version-check.js +147 -37
- package/dist/mcp/command.js +7 -0
- package/dist/mcp/hosted-mount.d.ts +27 -2
- package/dist/mcp/hosted-mount.js +53 -23
- package/dist/mcp/legacy-toolset.d.ts +27 -0
- package/dist/mcp/legacy-toolset.js +43 -0
- package/dist/mcp/ops-surface.d.ts +59 -0
- package/dist/mcp/ops-surface.js +453 -0
- package/dist/mcp/server.d.ts +45 -11
- package/dist/mcp/server.js +263 -89
- package/dist/mcp/tool-results.d.ts +26 -0
- package/dist/mcp/tool-results.js +81 -0
- package/dist/mcp/tool-surface.d.ts +65 -0
- package/dist/mcp/tool-surface.js +317 -0
- package/dist/mcp/tools/app-tools.js +9 -2
- package/dist/mcp/tools/asset-tools.js +55 -53
- package/dist/mcp/tools/audit-tools.js +21 -21
- package/dist/mcp/tools/debug-tools.js +6 -6
- package/dist/mcp/tools/fabricate-tools.js +6 -6
- package/dist/mcp/tools/generate-tools.js +76 -70
- package/dist/mcp/tools/project-tools.d.ts +9 -4
- package/dist/mcp/tools/project-tools.js +16 -10
- package/dist/mcp/tools/scene-tools.js +12 -23
- package/dist/mcp/tools/script-tools.js +9 -5
- package/dist/mcp/tools/with-engine.d.ts +6 -0
- package/dist/mcp/tools/with-engine.js +19 -0
- package/dist/project-memory/agent-instructions.d.ts +47 -0
- package/dist/project-memory/agent-instructions.js +226 -0
- package/gemini-extension.json +6 -13
- package/hooks/pre-commit-doctor.sh +5 -4
- package/hooks/session-start.sh +24 -28
- package/integrations/README.md +1 -1
- package/integrations/claude/README.md +6 -0
- package/integrations/claude/manifest-target.json +4 -0
- package/integrations/claude-desktop/README.md +1 -1
- package/integrations/copilot-jetbrains/README.md +1 -1
- package/integrations/gemini/README.md +11 -0
- package/integrations/junie/README.md +1 -1
- package/integrations/lm-studio/README.md +1 -1
- package/integrations/trae/README.md +1 -1
- package/integrations/visual-studio/README.md +1 -1
- package/integrations/windsurf/README.md +1 -1
- package/library/references/mcp-tools-reference/mcp-tools-reference.md +79 -51
- package/library/references/mcp-tools-reference/resource.yaml +1 -1
- package/library/references/product-map/resource.yaml +2 -2
- package/library/skills/3d-lighting/SKILL.md +69 -28
- package/library/skills/3d-lighting/resource.yaml +1 -1
- package/library/skills/README.md +121 -118
- package/library/skills/adaptive-music/SKILL.md +40 -23
- package/library/skills/adaptive-music/resource.yaml +1 -1
- package/library/skills/agent-playtesting/SKILL.md +23 -1
- package/library/skills/agent-playtesting/resource.yaml +1 -1
- package/library/skills/ai-characters-in-games/SKILL.md +16 -1
- package/library/skills/ai-characters-in-games/resource.yaml +1 -1
- package/library/skills/ambient-bed/SKILL.md +38 -13
- package/library/skills/ambient-bed/resource.yaml +1 -1
- package/library/skills/animated-loop/SKILL.md +60 -32
- package/library/skills/animated-loop/resource.yaml +1 -1
- package/library/skills/animation-tree/SKILL.md +27 -1
- package/library/skills/animation-tree/resource.yaml +1 -1
- package/library/skills/art-direction/SKILL.md +17 -3
- package/library/skills/art-direction/resource.yaml +1 -1
- package/library/skills/asset-strategy/SKILL.md +51 -4
- package/library/skills/asset-strategy/resource.yaml +2 -1
- package/library/skills/audio-direction/SKILL.md +26 -10
- package/library/skills/audio-direction/resource.yaml +1 -1
- package/library/skills/auto-fire-targeting/SKILL.md +15 -1
- package/library/skills/auto-fire-targeting/resource.yaml +1 -1
- package/library/skills/bounded-engine-runs/SKILL.md +1 -1
- package/library/skills/bounded-engine-runs/resource.yaml +1 -1
- package/library/skills/brainstorm-game/SKILL.md +14 -1
- package/library/skills/brainstorm-game/resource.yaml +1 -1
- package/library/skills/brainstorming/SKILL.md +1 -1
- package/library/skills/brainstorming/resource.yaml +1 -1
- package/library/skills/browse-templates/SKILL.md +11 -1
- package/library/skills/browse-templates/resource.yaml +1 -1
- package/library/skills/camera-rigs/SKILL.md +22 -2
- package/library/skills/camera-rigs/resource.yaml +1 -1
- package/library/skills/celeste-momentum-platforming/resource.yaml +1 -0
- package/library/skills/character-animation-wiring/SKILL.md +28 -4
- package/library/skills/character-animation-wiring/resource.yaml +1 -1
- package/library/skills/character-model/SKILL.md +83 -47
- package/library/skills/character-model/resource.yaml +1 -1
- package/library/skills/character-movement/SKILL.md +27 -3
- package/library/skills/character-movement/resource.yaml +1 -1
- package/library/skills/character-portrait/SKILL.md +39 -19
- package/library/skills/character-portrait/resource.yaml +1 -1
- package/library/skills/cinematic-cutscene/SKILL.md +79 -46
- package/library/skills/cinematic-cutscene/resource.yaml +1 -1
- package/library/skills/combat-basics/SKILL.md +20 -1
- package/library/skills/combat-basics/resource.yaml +1 -1
- package/library/skills/compatibility-renderer-traps/SKILL.md +12 -1
- package/library/skills/compatibility-renderer-traps/resource.yaml +1 -1
- package/library/skills/concept-art/SKILL.md +29 -12
- package/library/skills/concept-art/resource.yaml +1 -1
- package/library/skills/concept-to-level/SKILL.md +258 -0
- package/library/skills/concept-to-level/references/technical-rules.md +150 -0
- package/library/skills/concept-to-level/resource.yaml +44 -0
- package/library/skills/create-asset-sheet/SKILL.md +37 -13
- package/library/skills/create-asset-sheet/resource.yaml +1 -1
- package/library/skills/debug/SKILL.md +34 -2
- package/library/skills/debug/resource.yaml +1 -1
- package/library/skills/debugging-game-feel/SKILL.md +13 -1
- package/library/skills/debugging-game-feel/resource.yaml +1 -1
- package/library/skills/design-level/SKILL.md +40 -35
- package/library/skills/design-level/resource.yaml +1 -1
- package/library/skills/design-mechanic/SKILL.md +18 -1
- package/library/skills/design-mechanic/resource.yaml +1 -1
- package/library/skills/design-npc/SKILL.md +43 -24
- package/library/skills/design-npc/resource.yaml +1 -1
- package/library/skills/diagnosing-perf-regressions/SKILL.md +13 -1
- package/library/skills/diagnosing-perf-regressions/resource.yaml +1 -1
- package/library/skills/driving-the-editor-ui/SKILL.md +24 -1
- package/library/skills/driving-the-editor-ui/resource.yaml +1 -1
- package/library/skills/environment-kit/SKILL.md +43 -16
- package/library/skills/environment-kit/resource.yaml +1 -1
- package/library/skills/export-and-ship/SKILL.md +29 -6
- package/library/skills/export-and-ship/resource.yaml +1 -1
- package/library/skills/fabricating-assets/SKILL.md +30 -7
- package/library/skills/fabricating-assets/resource.yaml +3 -3
- package/library/skills/facial-and-lipsync/SKILL.md +36 -15
- package/library/skills/facial-and-lipsync/resource.yaml +1 -1
- package/library/skills/fps-controller/SKILL.md +50 -41
- package/library/skills/fps-controller/resource.yaml +1 -1
- package/library/skills/game-feel/SKILL.md +34 -8
- package/library/skills/game-feel/resource.yaml +1 -1
- package/library/skills/gameskill/SKILL.md +15 -4
- package/library/skills/gameskill/resource.yaml +1 -1
- package/library/skills/gdscript-patterns/SKILL.md +16 -1
- package/library/skills/gdscript-patterns/resource.yaml +1 -1
- package/library/skills/generate-motion/SKILL.md +51 -21
- package/library/skills/generate-motion/resource.yaml +1 -1
- package/library/skills/godogen-visual-proof-game-generation/SKILL.md +18 -1
- package/library/skills/godogen-visual-proof-game-generation/resource.yaml +1 -0
- package/library/skills/grow-analytics/SKILL.md +13 -3
- package/library/skills/grow-analytics/resource.yaml +1 -1
- package/library/skills/headless-scripting/SKILL.md +14 -1
- package/library/skills/headless-scripting/resource.yaml +1 -1
- package/library/skills/in-game-purchases/SKILL.md +12 -1
- package/library/skills/in-game-purchases/resource.yaml +1 -1
- package/library/skills/instantiate-asset-pack/SKILL.md +19 -2
- package/library/skills/instantiate-asset-pack/resource.yaml +1 -1
- package/library/skills/lumera-single-image-scene-reconstruction/resource.yaml +1 -0
- package/library/skills/make-game/SKILL.md +33 -4
- package/library/skills/make-game/references/2d-platformer.md +1 -1
- package/library/skills/make-game/references/3d-fps.md +1 -1
- package/library/skills/make-game/references/3d-horror.md +1 -1
- package/library/skills/make-game/references/3d-third-person.md +2 -2
- package/library/skills/make-game/resource.yaml +1 -1
- package/library/skills/multiplayer/SKILL.md +13 -1
- package/library/skills/multiplayer/resource.yaml +1 -1
- package/library/skills/multiplayer-movement/SKILL.md +19 -1
- package/library/skills/multiplayer-movement/resource.yaml +1 -1
- package/library/skills/multiplayer-project/SKILL.md +18 -1
- package/library/skills/multiplayer-project/resource.yaml +1 -1
- package/library/skills/multiplayer-publish/SKILL.md +25 -7
- package/library/skills/multiplayer-publish/resource.yaml +3 -3
- package/library/skills/multiplayer-state/SKILL.md +17 -1
- package/library/skills/multiplayer-state/resource.yaml +1 -1
- package/library/skills/multiplayer-testing/SKILL.md +16 -1
- package/library/skills/multiplayer-testing/resource.yaml +1 -1
- package/library/skills/music-track/SKILL.md +38 -13
- package/library/skills/music-track/resource.yaml +1 -1
- package/library/skills/navigate-summer/SKILL.md +26 -9
- package/library/skills/navigate-summer/resource.yaml +1 -1
- package/library/skills/new-project/SKILL.md +12 -1
- package/library/skills/new-project/resource.yaml +1 -1
- package/library/skills/organic-model/SKILL.md +48 -18
- package/library/skills/organic-model/resource.yaml +1 -1
- package/library/skills/pixel-art/SKILL.md +42 -23
- package/library/skills/pixel-art/resource.yaml +1 -1
- package/library/skills/play/SKILL.md +19 -1
- package/library/skills/play/resource.yaml +1 -1
- package/library/skills/playtesting-a-feature/SKILL.md +24 -1
- package/library/skills/playtesting-a-feature/resource.yaml +1 -1
- package/library/skills/procedural-animation/SKILL.md +38 -16
- package/library/skills/procedural-animation/resource.yaml +1 -1
- package/library/skills/prop-model/SKILL.md +48 -19
- package/library/skills/prop-model/resource.yaml +1 -1
- package/library/skills/psx-retro-rendering/resource.yaml +1 -0
- package/library/skills/publish-your-game/SKILL.md +43 -6
- package/library/skills/publish-your-game/resource.yaml +3 -3
- package/library/skills/realtime-wet-surfaces/resource.yaml +1 -0
- package/library/skills/release-readiness/SKILL.md +13 -1
- package/library/skills/release-readiness/resource.yaml +1 -1
- package/library/skills/remote-deploy/SKILL.md +15 -1
- package/library/skills/remote-deploy/resource.yaml +1 -1
- package/library/skills/retarget/SKILL.md +43 -20
- package/library/skills/retarget/resource.yaml +1 -1
- package/library/skills/running-in-the-cloud/SKILL.md +11 -1
- package/library/skills/running-in-the-cloud/resource.yaml +1 -1
- package/library/skills/save-load/SKILL.md +16 -1
- package/library/skills/save-load/resource.yaml +1 -1
- package/library/skills/scene-composition/SKILL.md +18 -1
- package/library/skills/scene-composition/resource.yaml +1 -1
- package/library/skills/scene-hierarchy-design/SKILL.md +26 -2
- package/library/skills/scene-hierarchy-design/resource.yaml +1 -1
- package/library/skills/scene-scripting/SKILL.md +96 -636
- package/library/skills/scene-scripting/references/ctx-api.md +184 -0
- package/library/skills/scene-scripting/references/recipes-2d-ui.md +193 -0
- package/library/skills/scene-scripting/references/recipes-3d.md +280 -0
- package/library/skills/scene-scripting/resource.yaml +4 -4
- package/library/skills/scene-to-level/SKILL.md +24 -2
- package/library/skills/scene-to-level/resource.yaml +1 -1
- package/library/skills/skill-create/resource.yaml +1 -0
- package/library/skills/skill-improve/resource.yaml +1 -0
- package/library/skills/skill-test/SKILL.md +12 -2
- package/library/skills/skill-test/resource.yaml +1 -0
- package/library/skills/skintokens-auto-rigging/resource.yaml +1 -0
- package/library/skills/skybox-panorama/SKILL.md +47 -21
- package/library/skills/skybox-panorama/resource.yaml +1 -1
- package/library/skills/sound-effect/SKILL.md +52 -20
- package/library/skills/sound-effect/resource.yaml +1 -1
- package/library/skills/spatial-placement/SKILL.md +44 -9
- package/library/skills/spatial-placement/resource.yaml +1 -1
- package/library/skills/sprite-sheet/SKILL.md +55 -27
- package/library/skills/sprite-sheet/resource.yaml +1 -1
- package/library/skills/store-art/SKILL.md +14 -3
- package/library/skills/store-art/resource.yaml +2 -2
- package/library/skills/store-listing/SKILL.md +13 -3
- package/library/skills/store-listing/resource.yaml +2 -2
- package/library/skills/summer-analytics/SKILL.md +22 -5
- package/library/skills/summer-analytics/resource.yaml +2 -2
- package/library/skills/summer-apps/SKILL.md +77 -32
- package/library/skills/summer-apps/manifest.md +1 -1
- package/library/skills/summer-apps/minimal-app.md +7 -7
- package/library/skills/summer-apps/resource.yaml +1 -1
- package/library/skills/summer-apps/sdk-reference.md +5 -5
- package/library/skills/summer-apps-design/SKILL.md +1 -1
- package/library/skills/summer-apps-design/resource.yaml +1 -1
- package/library/skills/summer-assets/SKILL.md +86 -0
- package/library/skills/summer-assets/resource.yaml +34 -0
- package/library/skills/summer-cli/SKILL.md +133 -0
- package/library/skills/summer-cli/resource.yaml +31 -0
- package/library/skills/summer-friends/SKILL.md +14 -0
- package/library/skills/summer-leaderboards/SKILL.md +16 -0
- package/library/skills/summer-match-results/SKILL.md +17 -0
- package/library/skills/summer-matchmaking/SKILL.md +17 -0
- package/library/skills/summer-parties/SKILL.md +14 -0
- package/library/skills/summer-player-data/SKILL.md +14 -0
- package/library/skills/summer-store/SKILL.md +16 -1
- package/library/skills/summer-world-chat/SKILL.md +14 -0
- package/library/skills/summer-world-saves/SKILL.md +14 -0
- package/library/skills/text-to-motion/SKILL.md +45 -23
- package/library/skills/text-to-motion/prompts-and-controls.md +5 -5
- package/library/skills/text-to-motion/resource.yaml +1 -1
- package/library/skills/text-to-motion/rigging-for-text-motion.md +2 -2
- package/library/skills/tileable-texture/SKILL.md +37 -15
- package/library/skills/tileable-texture/resource.yaml +1 -1
- package/library/skills/trailer-shot/SKILL.md +46 -24
- package/library/skills/trailer-shot/resource.yaml +1 -1
- package/library/skills/tune-performance/SKILL.md +32 -6
- package/library/skills/tune-performance/resource.yaml +1 -1
- package/library/skills/ui-basics/SKILL.md +55 -36
- package/library/skills/ui-basics/resource.yaml +1 -1
- package/library/skills/ui-graphics/SKILL.md +64 -38
- package/library/skills/ui-graphics/resource.yaml +1 -1
- package/library/skills/use-widget-asset/SKILL.md +15 -1
- package/library/skills/use-widget-asset/resource.yaml +1 -1
- package/library/skills/using-summer/SKILL.md +32 -5
- package/library/skills/using-summer/resource.yaml +3 -2
- package/library/skills/vehicle-model/SKILL.md +92 -57
- package/library/skills/vehicle-model/resource.yaml +1 -1
- package/library/skills/verification-before-completion/SKILL.md +1 -1
- package/library/skills/verification-before-completion/resource.yaml +1 -1
- package/library/skills/verifying-scenes/SKILL.md +31 -2
- package/library/skills/verifying-scenes/resource.yaml +1 -1
- package/library/skills/vfx-dissolve/SKILL.md +21 -2
- package/library/skills/vfx-dissolve/resource.yaml +1 -1
- package/library/skills/vfx-fire/SKILL.md +41 -41
- package/library/skills/vfx-fire/resource.yaml +1 -1
- package/library/skills/vfx-hit-spark/SKILL.md +24 -1
- package/library/skills/vfx-hit-spark/resource.yaml +1 -1
- package/library/skills/vfx-lightning/SKILL.md +30 -16
- package/library/skills/vfx-lightning/resource.yaml +1 -1
- package/library/skills/vfx-magic-glow/SKILL.md +46 -32
- package/library/skills/vfx-magic-glow/resource.yaml +1 -1
- package/library/skills/vfx-muzzle-flash/SKILL.md +43 -35
- package/library/skills/vfx-muzzle-flash/resource.yaml +1 -1
- package/library/skills/vfx-smoke/SKILL.md +39 -31
- package/library/skills/vfx-smoke/resource.yaml +1 -1
- package/library/skills/vfx-water-ripple/SKILL.md +35 -31
- package/library/skills/vfx-water-ripple/resource.yaml +1 -1
- package/library/skills/voice-line/SKILL.md +87 -40
- package/library/skills/voice-line/resource.yaml +1 -1
- package/library/skills/web-and-touch-input/SKILL.md +20 -1
- package/library/skills/web-and-touch-input/resource.yaml +1 -1
- package/library/skills/web-compatibility-look/SKILL.md +21 -1
- package/library/skills/web-compatibility-look/resource.yaml +1 -1
- package/library/skills/world-building-3d/SKILL.md +29 -1
- package/library/skills/world-building-3d/resource.yaml +1 -1
- package/library/skills/writing-skills/resource.yaml +1 -0
- package/library/tools/add-node/GUIDE.md +14 -0
- package/library/tools/align-distribute-3d/GUIDE.md +7 -0
- package/library/tools/app-call/resource.yaml +1 -1
- package/library/tools/app-guide/resource.yaml +2 -2
- package/library/tools/app-page/resource.yaml +1 -1
- package/library/tools/app-screenshot/resource.yaml +19 -1
- package/library/tools/app-tools/resource.yaml +1 -1
- package/library/tools/attach-to-surface/GUIDE.md +15 -0
- package/library/tools/batch/GUIDE.md +27 -0
- package/library/tools/camera-bookmark/GUIDE.md +12 -0
- package/library/tools/capture-gameplay/GUIDE.md +3 -0
- package/library/tools/capture-gameplay/resource.yaml +3 -3
- package/library/tools/check-job/resource.yaml +1 -1
- package/library/tools/clear-console/GUIDE.md +3 -0
- package/library/tools/connect-ports/GUIDE.md +9 -0
- package/library/tools/connect-signal/GUIDE.md +14 -0
- package/library/tools/create-debug-report/GUIDE.md +10 -0
- package/library/tools/create-scene/GUIDE.md +10 -0
- package/library/tools/debug-views/GUIDE.md +7 -0
- package/library/tools/enable-plugin/GUIDE.md +3 -0
- package/library/tools/export-game/GUIDE.md +3 -0
- package/library/tools/export-game/resource.yaml +3 -3
- package/library/tools/export-templates/GUIDE.md +3 -0
- package/library/tools/fabricate-3d/GUIDE.md +19 -0
- package/library/tools/frame-nodes/GUIDE.md +9 -0
- package/library/tools/frame-shot/GUIDE.md +9 -0
- package/library/tools/game-control/GUIDE.md +9 -0
- package/library/tools/game-input/GUIDE.md +9 -0
- package/library/tools/game-probe/GUIDE.md +9 -0
- package/library/tools/generate-3d/resource.yaml +3 -3
- package/library/tools/generate-motion/resource.yaml +2 -2
- package/library/tools/get-console/GUIDE.md +9 -0
- package/library/tools/get-console/resource.yaml +5 -0
- package/library/tools/get-debugger-errors/GUIDE.md +7 -0
- package/library/tools/get-debugger-errors/resource.yaml +5 -0
- package/library/tools/get-debugger-warnings/GUIDE.md +7 -0
- package/library/tools/get-debugger-warnings/resource.yaml +5 -0
- package/library/tools/get-diagnostics/GUIDE.md +13 -0
- package/library/tools/get-project-context/GUIDE.md +25 -0
- package/library/tools/get-runtime-tree/GUIDE.md +7 -0
- package/library/tools/get-runtime-tree/resource.yaml +5 -0
- package/library/tools/get-scene-tree/GUIDE.md +11 -0
- package/library/tools/get-scene-tree/resource.yaml +5 -0
- package/library/tools/get-script-errors/GUIDE.md +5 -0
- package/library/tools/grep/GUIDE.md +11 -0
- package/library/tools/import-asset/GUIDE.md +8 -0
- package/library/tools/import-asset-by-id/GUIDE.md +12 -0
- package/library/tools/import-from-url/GUIDE.md +10 -0
- package/library/tools/import-from-url-batch/GUIDE.md +3 -0
- package/library/tools/import-hdri/GUIDE.md +16 -0
- package/library/tools/input-map-bind/GUIDE.md +11 -0
- package/library/tools/inspect-asset/GUIDE.md +14 -0
- package/library/tools/inspect-asset/resource.yaml +5 -0
- package/library/tools/inspect-node/GUIDE.md +11 -0
- package/library/tools/inspect-node/resource.yaml +5 -0
- package/library/tools/inspect-resource/GUIDE.md +7 -0
- package/library/tools/inspect-resource/resource.yaml +5 -0
- package/library/tools/inspect-runtime-node/GUIDE.md +7 -0
- package/library/tools/inspect-runtime-node/resource.yaml +5 -0
- package/library/tools/instantiate-scene/GUIDE.md +12 -0
- package/library/tools/is-running/GUIDE.md +3 -0
- package/library/tools/measure/GUIDE.md +8 -0
- package/library/tools/navigation-probe/GUIDE.md +9 -0
- package/library/tools/open/resource.yaml +2 -2
- package/library/tools/open-main-scene/GUIDE.md +6 -0
- package/library/tools/open-scene/GUIDE.md +8 -0
- package/library/tools/place-adjacent/GUIDE.md +7 -0
- package/library/tools/play/GUIDE.md +13 -0
- package/library/tools/project-setting/GUIDE.md +9 -0
- package/library/tools/publish-build/resource.yaml +6 -6
- package/library/tools/raycast/GUIDE.md +7 -0
- package/library/tools/read-file/GUIDE.md +10 -0
- package/library/tools/read-library/resource.yaml +5 -0
- package/library/tools/recent-events/GUIDE.md +7 -0
- package/library/tools/remove-node/GUIDE.md +3 -0
- package/library/tools/repeat-along/GUIDE.md +5 -0
- package/library/tools/replace-node/GUIDE.md +9 -0
- package/library/tools/replace-text/GUIDE.md +5 -0
- package/library/tools/run-editor-script/GUIDE.md +16 -0
- package/library/tools/run-script/GUIDE.md +30 -0
- package/library/tools/run-script/resource.yaml +6 -3
- package/library/tools/runtime-animate/GUIDE.md +7 -0
- package/library/tools/runtime-call/GUIDE.md +7 -0
- package/library/tools/runtime-set/GUIDE.md +9 -0
- package/library/tools/runtime-spawn/GUIDE.md +9 -0
- package/library/tools/save-scene/GUIDE.md +3 -0
- package/library/tools/scene-audit/GUIDE.md +29 -0
- package/library/tools/screenshot/GUIDE.md +17 -0
- package/library/tools/select-node/GUIDE.md +3 -0
- package/library/tools/set-prop/GUIDE.md +23 -0
- package/library/tools/set-resource-property/GUIDE.md +8 -0
- package/library/tools/shot-sheet/GUIDE.md +7 -0
- package/library/tools/snap-to-surface/GUIDE.md +17 -0
- package/library/tools/snapshot-diff/GUIDE.md +7 -0
- package/library/tools/starcast/GUIDE.md +12 -0
- package/library/tools/stop/GUIDE.md +3 -0
- package/library/tools/test-placement/GUIDE.md +7 -0
- package/library/tools/ui-actions/GUIDE.md +12 -0
- package/library/tools/ui-activate/GUIDE.md +11 -0
- package/library/tools/ui-screenshot/GUIDE.md +9 -0
- package/library/tools/ui-tree/GUIDE.md +10 -0
- package/library/tools/wait-for-event/GUIDE.md +11 -0
- package/library/tools/world-snapshot/GUIDE.md +9 -0
- package/library/tools/write-file/GUIDE.md +5 -0
- package/library/tools/zoom/GUIDE.md +5 -0
- package/package.json +8 -5
- package/registry/generated/counts.json +2 -2
- package/registry/generated/gemini-extension.json +6 -13
- package/registry/generated/index.json +482 -349
- package/registry/generated/marketplace.claude.json +2 -13
- package/registry/generated/plugin.claude-directory.json +168 -0
- package/registry/generated/plugin.claude.json +24 -22
- package/registry/generated/plugin.codex.json +18 -22
- package/registry/generated/plugin.cursor.json +8 -14
- package/registry/generated/plugin.factory.json +6 -13
- package/registry/generated/server.json +43 -0
- package/registry/generated/skills-index.md +121 -118
- package/registry/generated/skills-registry.json +167 -115
- package/registry/operations/fixtures/invalid-deprecated-without-replacement.json +60 -0
- package/registry/operations/fixtures/invalid-name.json +60 -0
- package/registry/operations/fixtures/invalid-publish-without-owner.json +82 -0
- package/registry/operations/fixtures/invalid-spend-without-estimate.json +42 -0
- package/registry/operations/fixtures/invalid-unknown-field.json +61 -0
- package/registry/operations/fixtures/valid-player-facing.json +82 -0
- package/registry/operations/fixtures/valid-read.json +60 -0
- package/registry/operations/fixtures/valid-spend.json +43 -0
- package/registry/operations/legacy-names.json +1241 -0
- package/registry/operations/public-catalog.json +33160 -0
- package/registry/schemas/operation.schema.json +318 -0
- package/registry/schemas/skill.schema.json +4 -0
- package/CLAUDE.md +0 -7
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: multiplayer-publish
|
|
3
|
-
description: "Ship a hosted Summer multiplayer game: the
|
|
3
|
+
description: "Ship a hosted Summer multiplayer game: the bundle, server preset, pre-upload checks, a new Build."
|
|
4
4
|
license: MIT
|
|
5
5
|
compatibility: [Cursor, Claude Code, Windsurf, Codex]
|
|
6
6
|
category: multiplayer-and-networking
|
|
7
7
|
user-invocable: true
|
|
8
|
-
allowed-tools: Read Grep Glob Edit Write summer_read_file summer_write_file summer_project_setting
|
|
8
|
+
allowed-tools: Read Grep Glob Edit Write summer_read_file summer_write_file summer_project_setting summer_call
|
|
9
9
|
paths: ["export_presets.cfg", "summer.build.json", "world.json", "source-domains.json", "runtime-manifest.json", "project.godot"]
|
|
10
10
|
---
|
|
11
11
|
|
|
@@ -246,16 +246,17 @@ empty window. Re-export with the current Summer release.
|
|
|
246
246
|
`summer.build.json` must be its id. The export leaves `gameId` out of the
|
|
247
247
|
bundle, and the game code calls `Summer.initialize()` with no ID: a
|
|
248
248
|
literal or fallback ID fails hosted with `game_identity_mismatch`.
|
|
249
|
-
2. Open the game's Builds page: `
|
|
249
|
+
2. Open the game's Builds page: `studio.open` with target `game`,
|
|
250
250
|
`gameId` and section `builds`, or summerengine.com → Studio → your game →
|
|
251
251
|
Builds.
|
|
252
252
|
3. Upload the `.zip` as a new Build. Summer checks it again: unknown fields,
|
|
253
253
|
queue rules, both packs, and the composition match. From an agent:
|
|
254
|
-
`summer_export_game`, then `
|
|
254
|
+
`summer_export_game`, then `store.upload_file` with `gameId` and
|
|
255
255
|
`clientVersion`; it asks for confirmation first and needs
|
|
256
|
-
`summer login --store`. If
|
|
257
|
-
Studio.
|
|
258
|
-
4. Release the Build to an environment.
|
|
256
|
+
`summer login --store`. If the store refuses this machine's sign-in,
|
|
257
|
+
upload in Studio.
|
|
258
|
+
4. Release the Build to an environment (`store.release` releases the Build
|
|
259
|
+
the owner approved with `store.publish`). Its queues go live there, and
|
|
259
260
|
clients join them with `Summer.client.join(SummerJoinTarget.queue(...))`.
|
|
260
261
|
The code is the same as in Local Play.
|
|
261
262
|
|
|
@@ -316,3 +317,20 @@ Use step 4d to see which scene runs.
|
|
|
316
317
|
| Export with a development build of Summer | Export with the released editor from the download page, again after every update | Players run the pack on the released Summer of the stamped version; newer APIs fail to compile and the game opens to an empty window |
|
|
317
318
|
| Read an empty server log as a hang | Run step 4d | A release server holds back its output until it exits |
|
|
318
319
|
| Export a patch | Export Project, or Export PCK/ZIP without Export As Patch | summer.games takes complete bundles or packs |
|
|
320
|
+
|
|
321
|
+
<!-- shell-commands: generated from the operation catalog by npm run generate:registry; do not edit by hand -->
|
|
322
|
+
## From a shell
|
|
323
|
+
|
|
324
|
+
No Summer MCP tools in this session? Run each one as a command; when `summer --version` is missing or below 4.0, use `npx -y summer-engine@latest` in place of `summer`. Fields are flags in kebab-case (`--scene-path res://main.tscn`) or one `--input '<json>'`, and `summer ops describe <op>` prints the exact input. The `summer-cli` skill has the rest.
|
|
325
|
+
|
|
326
|
+
| In this skill | Command |
|
|
327
|
+
|---|---|
|
|
328
|
+
| `summer_export_game` | `summer engine export-game` |
|
|
329
|
+
| `summer_project_setting` | `summer engine project-setting` |
|
|
330
|
+
| `summer_read_file` | `summer engine read-file` |
|
|
331
|
+
| `summer_write_file` | `summer engine write-file` |
|
|
332
|
+
| `store.publish` | `summer store publish` |
|
|
333
|
+
| `store.release` | `summer store release` |
|
|
334
|
+
| `store.upload_file` | `summer store upload-file` |
|
|
335
|
+
| `studio.open` | `summer studio open` |
|
|
336
|
+
<!-- /shell-commands -->
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
id: skill/multiplayer-publish
|
|
2
2
|
kind: skill
|
|
3
|
-
version: 1.0.
|
|
4
|
-
summary: "Ship a hosted Summer multiplayer game: the
|
|
3
|
+
version: 1.0.1
|
|
4
|
+
summary: "Ship a hosted Summer multiplayer game: the bundle, server preset, pre-upload checks, a new Build."
|
|
5
5
|
use_when:
|
|
6
6
|
- "publishing a hosted Summer multiplayer game online so other players can join it"
|
|
7
7
|
- "making the summer.games bundle of a hosted game: client.pck, server.pck and the Linux server preset"
|
|
@@ -25,5 +25,5 @@ related:
|
|
|
25
25
|
- skill/release-readiness
|
|
26
26
|
source: official
|
|
27
27
|
license: MIT
|
|
28
|
-
status:
|
|
28
|
+
status: stable
|
|
29
29
|
recommended: false
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: multiplayer-state
|
|
3
|
-
description: "Authority-owned
|
|
3
|
+
description: "Authority-owned state in Summer multiplayer: shared and private State groups, Commands, Events."
|
|
4
4
|
license: MIT
|
|
5
5
|
compatibility: [Cursor, Claude Code, Windsurf, Codex]
|
|
6
6
|
category: multiplayer-and-networking
|
|
@@ -436,3 +436,19 @@ Run Local Play with 2 players and network emulation (`multiplayer-testing`):
|
|
|
436
436
|
## Next
|
|
437
437
|
|
|
438
438
|
`multiplayer-testing`: bots and a bad network. Then `multiplayer-publish`.
|
|
439
|
+
|
|
440
|
+
<!-- shell-commands: generated from the operation catalog by npm run generate:registry; do not edit by hand -->
|
|
441
|
+
## From a shell
|
|
442
|
+
|
|
443
|
+
No Summer MCP tools in this session? Run each one as a command; when `summer --version` is missing or below 4.0, use `npx -y summer-engine@latest` in place of `summer`. Fields are flags in kebab-case (`--scene-path res://main.tscn`) or one `--input '<json>'`, and `summer ops describe <op>` prints the exact input. The `summer-cli` skill has the rest.
|
|
444
|
+
|
|
445
|
+
| In this skill | Command |
|
|
446
|
+
|---|---|
|
|
447
|
+
| `summer_get_diagnostics` | `summer engine get-diagnostics` |
|
|
448
|
+
| `summer_get_script_errors` | `summer engine get-script-errors` |
|
|
449
|
+
| `summer_play` | `summer engine play` |
|
|
450
|
+
| `summer_project_setting` | `summer engine project-setting` |
|
|
451
|
+
| `summer_read_file` | `summer engine read-file` |
|
|
452
|
+
| `summer_stop` | `summer engine stop` |
|
|
453
|
+
| `summer_write_file` | `summer engine write-file` |
|
|
454
|
+
<!-- /shell-commands -->
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
id: skill/multiplayer-state
|
|
2
2
|
kind: skill
|
|
3
3
|
version: 1.0.0
|
|
4
|
-
summary: "Authority-owned
|
|
4
|
+
summary: "Authority-owned state in Summer multiplayer: shared and private State groups, Commands, Events."
|
|
5
5
|
use_when:
|
|
6
6
|
- "score, health, doors, rounds, inventories or wallets in a Summer multiplayer game, and who owns them"
|
|
7
7
|
- "players need to collect, buy, use, open or trade things and the authority must validate it"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: multiplayer-testing
|
|
3
|
-
description: "Test a Summer multiplayer game with Local Play: several players,
|
|
3
|
+
description: "Test a Summer multiplayer game with Local Play: several players, bad network, bots, a passing run."
|
|
4
4
|
license: MIT
|
|
5
5
|
compatibility: [Cursor, Claude Code, Windsurf, Codex]
|
|
6
6
|
category: multiplayer-and-networking
|
|
@@ -247,3 +247,18 @@ gaps on the `.zip` you upload.
|
|
|
247
247
|
## Next
|
|
248
248
|
|
|
249
249
|
`multiplayer-publish`: export the summer.games bundle and upload it as a Build.
|
|
250
|
+
|
|
251
|
+
<!-- shell-commands: generated from the operation catalog by npm run generate:registry; do not edit by hand -->
|
|
252
|
+
## From a shell
|
|
253
|
+
|
|
254
|
+
No Summer MCP tools in this session? Run each one as a command; when `summer --version` is missing or below 4.0, use `npx -y summer-engine@latest` in place of `summer`. Fields are flags in kebab-case (`--scene-path res://main.tscn`) or one `--input '<json>'`, and `summer ops describe <op>` prints the exact input. The `summer-cli` skill has the rest.
|
|
255
|
+
|
|
256
|
+
| In this skill | Command |
|
|
257
|
+
|---|---|
|
|
258
|
+
| `summer_get_console` | `summer engine get-console` |
|
|
259
|
+
| `summer_get_diagnostics` | `summer engine get-diagnostics` |
|
|
260
|
+
| `summer_play` | `summer engine play` |
|
|
261
|
+
| `summer_project_setting` | `summer engine project-setting` |
|
|
262
|
+
| `summer_screenshot` | `summer engine screenshot` |
|
|
263
|
+
| `summer_stop` | `summer engine stop` |
|
|
264
|
+
<!-- /shell-commands -->
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
id: skill/multiplayer-testing
|
|
2
2
|
kind: skill
|
|
3
3
|
version: 1.0.0
|
|
4
|
-
summary: "Test a Summer multiplayer game with Local Play: several players,
|
|
4
|
+
summary: "Test a Summer multiplayer game with Local Play: several players, bad network, bots, a passing run."
|
|
5
5
|
use_when:
|
|
6
6
|
- "running or testing a Summer multiplayer game locally with several players (Local Play)"
|
|
7
7
|
- "testing multiplayer under latency, jitter or packet loss, or with bots"
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: music-track
|
|
3
|
-
description: "Generate a
|
|
3
|
+
description: "Generate a music track: game loops of 30s or more with a loop point, or linear cinematic cues."
|
|
4
4
|
license: MIT
|
|
5
5
|
compatibility: [Cursor, Claude Code, Windsurf, Codex]
|
|
6
6
|
category: audio
|
|
7
7
|
user-invocable: true
|
|
8
|
-
allowed-tools: Read Grep Glob Write Edit
|
|
8
|
+
allowed-tools: Read Grep Glob Write Edit summer_assets_generate_audio summer_assets_search summer_import_from_url summer_add_node summer_set_prop summer_inspect_node summer_call
|
|
9
9
|
paths: ["audio/music/**", "scripts/**", "**/*.tscn"]
|
|
10
10
|
---
|
|
11
11
|
|
|
@@ -126,18 +126,18 @@ Show the prompt:
|
|
|
126
126
|
> `85 BPM, D minor, 4/4, solo cello and detuned upright piano, sparse, melancholic exploration loop, no drums, gentle reverb, 60s loop`
|
|
127
127
|
> Duration 60s. This uses credits. Generate?
|
|
128
128
|
|
|
129
|
-
The `music` capability reads the description from **`prompt`**, not `text` — the mirror image of `sound_effects`.
|
|
129
|
+
The `music` capability reads the description from **`prompt`**, not `text` — the mirror image of `sound_effects`. Without `prompt` the call is refused (`prompt_required`).
|
|
130
130
|
|
|
131
131
|
```
|
|
132
|
-
|
|
132
|
+
assets.generate_audio({
|
|
133
133
|
capability: "music",
|
|
134
134
|
prompt: "85 BPM, D minor, 4/4, solo cello and detuned upright piano, sparse, melancholic exploration loop, no drums, gentle reverb, 60s loop",
|
|
135
135
|
durationSeconds: 60
|
|
136
|
-
)
|
|
137
|
-
// Then: summer_import_from_url(url: "<fileUrl>", path: "res://audio/music/calm_exploration.mp3")
|
|
136
|
+
})
|
|
137
|
+
// Then: summer_import_from_url(url: "<asset.fileUrl>", path: "res://audio/music/calm_exploration.mp3")
|
|
138
138
|
```
|
|
139
139
|
|
|
140
|
-
`durationSeconds` is clamped to 3–600. Music comes back as MP3 (`audio/mpeg`), so a `.mp3` target path is correct.
|
|
140
|
+
`durationSeconds` is clamped to 3–600, and a longer track costs more: `dryRun: true` returns the `estimate` in credits first. Music comes back as MP3 (`audio/mpeg`), so a `.mp3` target path is correct.
|
|
141
141
|
|
|
142
142
|
### 7. Mark the loop point in Summer Engine
|
|
143
143
|
|
|
@@ -161,14 +161,19 @@ For seamless looping, the cleaner option is to ask the model to generate a cell
|
|
|
161
161
|
|
|
162
162
|
### 8. Wire it as `AudioStreamPlayer` on the `Music` bus
|
|
163
163
|
|
|
164
|
-
|
|
164
|
+
One script adds the player with its settings; `scenePath` is the exact scene to change:
|
|
165
165
|
|
|
166
166
|
```
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
167
|
+
summer_run_script(scenePath="res://main.tscn", source="""
|
|
168
|
+
func run(ctx):
|
|
169
|
+
ctx.add_node("AudioStreamPlayer", "MusicCalm", null, {
|
|
170
|
+
"stream": load("res://audio/music/calm_exploration.mp3"),
|
|
171
|
+
"bus": "Music",
|
|
172
|
+
"volume_db": -8.0,
|
|
173
|
+
"autoplay": true,
|
|
174
|
+
})
|
|
175
|
+
ctx.save_scene()
|
|
176
|
+
""")
|
|
172
177
|
```
|
|
173
178
|
|
|
174
179
|
Music is `AudioStreamPlayer` (not 2D / 3D) — non-positional. The bible's `Music -8 dB` mix sits the music behind SFX where it belongs.
|
|
@@ -257,6 +262,10 @@ Cutscene (cinematic): varies tempo, D minor, 4/4, solo piano opens,
|
|
|
257
262
|
- **Track sounds nothing like the references.** Re-read the bible; the prompt may be missing the anchor instrument. Add it explicitly.
|
|
258
263
|
- **Track has unexpected vocals.** Add `no vocals, instrumental only` to the prompt.
|
|
259
264
|
|
|
265
|
+
## Without Summer Engine
|
|
266
|
+
|
|
267
|
+
In a session without Summer Engine tools (the assets profile; the `summer-assets` skill has the whole loop), do steps 1-6 and skip steps 7-9 (loop point, `AudioStreamPlayer`, crossfade script). Save the file where the person asked with `out` (the `summer-assets` skill says how), and tell them the path and format. For a loop track, tell them it is made to loop.
|
|
268
|
+
|
|
260
269
|
## Fallback (no MCP)
|
|
261
270
|
|
|
262
271
|
Print the prompt and instruct the user to run via the Summer dashboard, then `summer_import_from_url` the rendered MP3.
|
|
@@ -274,3 +283,19 @@ Print the prompt and instruct the user to run via the Summer dashboard, then `su
|
|
|
274
283
|
- `adaptive-music` — wiring stems to game state
|
|
275
284
|
- `sound-effect` — short stings
|
|
276
285
|
- `ambient-bed` — non-melodic location bed
|
|
286
|
+
|
|
287
|
+
<!-- shell-commands: generated from the operation catalog by npm run generate:registry; do not edit by hand -->
|
|
288
|
+
## From a shell
|
|
289
|
+
|
|
290
|
+
No Summer MCP tools in this session? Run each one as a command; when `summer --version` is missing or below 4.0, use `npx -y summer-engine@latest` in place of `summer`. Fields are flags in kebab-case (`--scene-path res://main.tscn`) or one `--input '<json>'`, and `summer ops describe <op>` prints the exact input. The `summer-cli` skill has the rest.
|
|
291
|
+
|
|
292
|
+
| In this skill | Command |
|
|
293
|
+
|---|---|
|
|
294
|
+
| `summer_assets_generate_audio` | `summer assets generate-audio` |
|
|
295
|
+
| `summer_assets_search` | `summer assets search` |
|
|
296
|
+
| `summer_add_node` | `summer engine add-node` |
|
|
297
|
+
| `summer_import_from_url` | `summer engine import-from-url` |
|
|
298
|
+
| `summer_inspect_node` | `summer engine inspect-node` |
|
|
299
|
+
| `summer_run_script` | `summer engine run-script` |
|
|
300
|
+
| `summer_set_prop` | `summer engine set-prop` |
|
|
301
|
+
<!-- /shell-commands -->
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
id: skill/music-track
|
|
2
2
|
kind: skill
|
|
3
3
|
version: 1.0.2
|
|
4
|
-
summary: Generate a
|
|
4
|
+
summary: "Generate a music track: game loops of 30s or more with a loop point, or linear cinematic cues."
|
|
5
5
|
use_when:
|
|
6
6
|
- generating a looped or cinematic music track — main theme, boss music, title screen, exploration loop, combat track
|
|
7
7
|
- a game has no music yet or needs a new track for a level, a cutscene, or the credits
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: navigate-summer
|
|
3
|
-
description: "
|
|
3
|
+
description: "Open a Summer web page or editor surface for the user (billing, their games, a scene) with studio.open."
|
|
4
4
|
license: MIT
|
|
5
5
|
compatibility: [Cursor, Claude Code, Codex, Windsurf, Gemini, OpenCode, Factory, Copilot]
|
|
6
6
|
category: _meta
|
|
7
7
|
user-invocable: true
|
|
8
|
-
allowed-tools:
|
|
8
|
+
allowed-tools: summer_call summer_get_project_context summer_is_running
|
|
9
9
|
paths: ["**/project.godot", "**/*.tscn", "**/.summer/**"]
|
|
10
10
|
---
|
|
11
11
|
|
|
@@ -13,7 +13,9 @@ paths: ["**/project.godot", "**/*.tscn", "**/.summer/**"]
|
|
|
13
13
|
|
|
14
14
|
## Overview
|
|
15
15
|
|
|
16
|
-
Summer has two surfaces the user looks at: **summerengine.com** (Studio, games, billing, templates, guides, docs) and the **Summer Engine editor** (scenes, nodes, docks). `
|
|
16
|
+
Summer has two surfaces the user looks at: **summerengine.com** (Studio, games, billing, templates, guides, docs) and the **Summer Engine editor** (scenes, nodes, docks). `studio.open` — the same behavior as `summer open <target>` in a shell, run by the Summer MCP on this computer — takes an intent ("billing", "my games", "the scene I'm editing", "res://player.gd") and opens the exact page or panel, or prints the URL / engine op so you can hand it over. The **product map** reference (`summer_docs_read` id `reference/product-map`) is the full table of destinations with their intent phrases, required context, and what the user will see.
|
|
17
|
+
|
|
18
|
+
A call written `studio.open({...})` is `summer_call({ op: "studio.open", input: {...} })` (3.x name: `summer_open`). The fields below are in the answer's `result`.
|
|
17
19
|
|
|
18
20
|
Rigid skill: follow the rules below exactly.
|
|
19
21
|
|
|
@@ -21,18 +23,18 @@ Rigid skill: follow the rules below exactly.
|
|
|
21
23
|
|
|
22
24
|
| The user wants to… | Do |
|
|
23
25
|
|---|---|
|
|
24
|
-
| **see / check / decide** — plan and billing (money), their published games and releases, usage, pricing, the MCP setup guide for their agent, docs, the scene or node you just built ("show me") | **Open the surface** with `
|
|
25
|
-
| **get a result** — add a node, set a property, import an asset, run the game, publish | **Act through Summer tools** (mutation tools, `summer_play`, `
|
|
26
|
+
| **see / check / decide** — plan and billing (money), their published games and releases, usage, pricing, the MCP setup guide for their agent, docs, the scene or node you just built ("show me") | **Open the surface** with `studio.open` |
|
|
27
|
+
| **get a result** — add a node, set a property, import an asset, run the game, publish | **Act through Summer tools** (mutation tools, `summer_play`, `store.publish`); do not open the editor to do by hand what a tool does |
|
|
26
28
|
| **both** ("add a camera and show me") | act first, then open the scene / select the node so the user sees the result |
|
|
27
29
|
|
|
28
30
|
Never open a browser or switch the editor's tab as a side effect of building. Opening is a user-visible action — do it because the user asked to look, and say what will open before it opens.
|
|
29
31
|
|
|
30
32
|
## How to call it
|
|
31
33
|
|
|
32
|
-
1. **Resolve first when unsure.** `
|
|
33
|
-
2. **Open.** `
|
|
34
|
+
1. **Resolve first when unsure.** `studio.open({ target: "change my plan", open: false })` returns the matched target, the URL (and `login_url` if login is required), or the engine op — nothing opens. If `action` is `ambiguous`, pick from `matches` and call again with the `id`.
|
|
35
|
+
2. **Open.** `studio.open({ target: "billing" })` opens the browser at Studio → Billing. `studio.open({ target: "scene", params: { path: "res://levels/level_1.tscn" } })` opens the scene in the running editor. `studio.open({ target: "node", params: { node: "Player/Camera3D" } })` selects the node. `studio.open({ target: "res://player.gd" })` routes by extension.
|
|
34
36
|
3. **Fill the slots the target declares.** `game` needs `params.gameId` (and an optional `section` such as `builds`, `releases`, `store-page`, `analytics`); `mcp-guide` takes `params.guide` as an agent name (`cursor`, `claude-code`, `codex`, `gemini`, …); `profile` takes `username`; `changelog` takes `version`.
|
|
35
|
-
4. **List when you do not know the id.** `
|
|
37
|
+
4. **List when you do not know the id.** `studio.open({})` returns every target with `surface`, `status`, and `requires`. In a shell: `summer open --list`.
|
|
36
38
|
|
|
37
39
|
## Read the result honestly
|
|
38
40
|
|
|
@@ -51,7 +53,7 @@ Use `open: false` (CLI: `--print`) and paste the `url` (or `login_url`) when the
|
|
|
51
53
|
|
|
52
54
|
## Editor targets
|
|
53
55
|
|
|
54
|
-
The editor owns its own table of destinations (the `Navigate` op) and tells the tool which ids it can open. `
|
|
56
|
+
The editor owns its own table of destinations (the `Navigate` op) and tells the tool which ids it can open. `studio.open({})` lists every editor id with `availability`: `available` (Navigate op), `legacy` (an older engine serving it through its original op), `unavailable` (update Summer Engine), `unknown` (engine not running). Ids: `scene` (default = the project's main scene), `main-scene`, `node`, `script` (with `line`), `file`, `files`, `scene-tree`, `inspector`, `import-dock`, `signals-dock`, `changes-dock`, `screen-2d/3d/script/game/assetlib`, `viewport-show/hide`, `assistant`, `project-settings`, `editor-settings`, `output`, `debugger`, `editor-window`. On a legacy engine, `script` opens without taking focus — mention it if the user does not see it.
|
|
55
57
|
|
|
56
58
|
## Anti-patterns
|
|
57
59
|
|
|
@@ -59,3 +61,18 @@ The editor owns its own table of destinations (the `Navigate` op) and tells the
|
|
|
59
61
|
- Opening the scene in the editor **before** the change landed ("show me" comes after the mutation and its screenshot).
|
|
60
62
|
- Guessing a `gameId`. Open `my-games` and let the user pick, or read the id from a URL they gave you.
|
|
61
63
|
- Describing a page you did not open. If `ok` is false, the user saw nothing.
|
|
64
|
+
|
|
65
|
+
<!-- shell-commands: generated from the operation catalog by npm run generate:registry; do not edit by hand -->
|
|
66
|
+
## From a shell
|
|
67
|
+
|
|
68
|
+
No Summer MCP tools in this session? Run each one as a command; when `summer --version` is missing or below 4.0, use `npx -y summer-engine@latest` in place of `summer`. Fields are flags in kebab-case (`--scene-path res://main.tscn`) or one `--input '<json>'`, and `summer ops describe <op>` prints the exact input. The `summer-cli` skill has the rest.
|
|
69
|
+
|
|
70
|
+
| In this skill | Command |
|
|
71
|
+
|---|---|
|
|
72
|
+
| `summer_docs_read` | `summer docs read` |
|
|
73
|
+
| `summer_get_project_context` | `summer engine get-project-context` |
|
|
74
|
+
| `summer_is_running` | `summer engine is-running` |
|
|
75
|
+
| `summer_play` | `summer engine play` |
|
|
76
|
+
| `store.publish` | `summer store publish` |
|
|
77
|
+
| `studio.open`, `summer_open` | `summer studio open` |
|
|
78
|
+
<!-- /shell-commands -->
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
id: skill/navigate-summer
|
|
2
2
|
kind: skill
|
|
3
3
|
version: 1.0.0
|
|
4
|
-
summary:
|
|
4
|
+
summary: "Open a Summer web page or editor surface for the user (billing, their games, a scene) with studio.open."
|
|
5
5
|
use_when:
|
|
6
6
|
- the user asks to see, check, or decide something — "show me my billing", "where do I change my plan", "open my games", "let me look at the scene", "take me to the MCP guide for Cursor"
|
|
7
7
|
- deciding whether to open a surface for the user or to do the work through Summer tools
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: new-project
|
|
3
|
-
description: "Create a
|
|
3
|
+
description: "Create a blank Summer Engine project: ask for the project name and run summer create empty."
|
|
4
4
|
license: MIT
|
|
5
5
|
compatibility: [Cursor, Claude Code, Codex, Windsurf, Gemini, OpenCode]
|
|
6
6
|
category: scene-and-project
|
|
@@ -102,3 +102,14 @@ Ask: "Project is open. What do you want to build?"
|
|
|
102
102
|
## Closing
|
|
103
103
|
|
|
104
104
|
End with: "Project `<name>` is created and open. What do you want to build first?"
|
|
105
|
+
|
|
106
|
+
<!-- shell-commands: generated from the operation catalog by npm run generate:registry; do not edit by hand -->
|
|
107
|
+
## From a shell
|
|
108
|
+
|
|
109
|
+
No Summer MCP tools in this session? Run each one as a command; when `summer --version` is missing or below 4.0, use `npx -y summer-engine@latest` in place of `summer`. Fields are flags in kebab-case (`--scene-path res://main.tscn`) or one `--input '<json>'`, and `summer ops describe <op>` prints the exact input. The `summer-cli` skill has the rest.
|
|
110
|
+
|
|
111
|
+
| In this skill | Command |
|
|
112
|
+
|---|---|
|
|
113
|
+
| `summer_get_project_context` | `summer engine get-project-context` |
|
|
114
|
+
| `summer_replace_node` | `summer engine replace-node` |
|
|
115
|
+
<!-- /shell-commands -->
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
id: skill/new-project
|
|
2
2
|
kind: skill
|
|
3
3
|
version: 1.0.4
|
|
4
|
-
summary: Create a
|
|
4
|
+
summary: "Create a blank Summer Engine project: ask for the project name and run summer create empty."
|
|
5
5
|
use_when:
|
|
6
6
|
- the user wants a fresh blank Summer Engine project — from scratch, blank canvas
|
|
7
7
|
- starting a Summer Engine project with no template, only a name, ready for an empty main scene
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: organic-model
|
|
3
|
-
description: "Generate organic 3D shapes
|
|
3
|
+
description: "Generate organic 3D shapes (trees, rocks, mushrooms, plants, crystals) where irregularity looks natural."
|
|
4
4
|
license: MIT
|
|
5
5
|
compatibility: [Cursor, Claude Code, Windsurf, Codex]
|
|
6
6
|
category: 3d-assets
|
|
7
7
|
user-invocable: true
|
|
8
|
-
allowed-tools: Read Grep
|
|
8
|
+
allowed-tools: Read Grep summer_assets_search summer_assets_get summer_import_asset_by_id summer_assets_generate_3d summer_assets_generate_image summer_import_from_url summer_add_node summer_set_prop summer_inspect_node summer_get_scene_tree summer_save_scene summer_jobs_wait summer_call
|
|
9
9
|
paths: ["assets/organic/**", "assets/models/**", "**/*.tscn", "**/*.gd"]
|
|
10
10
|
---
|
|
11
11
|
|
|
@@ -15,7 +15,7 @@ Organic shapes (trees, rocks, mushrooms, coral, alien flora, crystals, vines, bo
|
|
|
15
15
|
|
|
16
16
|
This is the cheapest, fastest way to fill out a scene, and the first choice when the user says "this scene feels empty". The failure rate is the lowest of any 3D-asset family.
|
|
17
17
|
|
|
18
|
-
Backing
|
|
18
|
+
Backing operation: `assets.generate_3d` (it answers with a job: `jobs.wait` until it finishes). Default `hunyuan` works well here, but `trellis` is faster and the quality difference is hard to see on organic shapes. Pick `trellis` when generating many at once.
|
|
19
19
|
|
|
20
20
|
## When to use
|
|
21
21
|
|
|
@@ -41,12 +41,12 @@ Organic geometry tolerates aggressive polycount cuts because the silhouette is i
|
|
|
41
41
|
|
|
42
42
|
| Use case | Tris | Pass via |
|
|
43
43
|
|---|---|---|
|
|
44
|
-
| Hero tree (mid-distance, prominent) | 4k–8k | `
|
|
45
|
-
| Background tree (forest filler) | 1k–3k | `
|
|
46
|
-
| Distant tree (use billboard imposter) | 200–500 | `
|
|
47
|
-
| Large rock / boulder | 800–2000 | `
|
|
48
|
-
| Small organic (mushroom, fruit, crystal) | 300–1000 | `
|
|
49
|
-
| Vine / branch decoration | 200–500 | `
|
|
44
|
+
| Hero tree (mid-distance, prominent) | 4k–8k | `targetPolycount: 6000` |
|
|
45
|
+
| Background tree (forest filler) | 1k–3k | `targetPolycount: 2000` |
|
|
46
|
+
| Distant tree (use billboard imposter) | 200–500 | `targetPolycount: 400` |
|
|
47
|
+
| Large rock / boulder | 800–2000 | `targetPolycount: 1500` |
|
|
48
|
+
| Small organic (mushroom, fruit, crystal) | 300–1000 | `targetPolycount: 600` |
|
|
49
|
+
| Vine / branch decoration | 200–500 | `targetPolycount: 400` |
|
|
50
50
|
|
|
51
51
|
Generating a forest? Make 3 hero trees + 5 background trees + 3 rocks at low polycount, then scatter via `MultiMeshInstance3D` for hundreds of copies at near-zero rendering cost.
|
|
52
52
|
|
|
@@ -55,7 +55,7 @@ Generating a forest? Make 3 hero trees + 5 background trees + 3 rocks at low pol
|
|
|
55
55
|
### 1. Search before generating
|
|
56
56
|
|
|
57
57
|
```
|
|
58
|
-
|
|
58
|
+
assets.search({ query: "<organic type>", assetType: "3d_model", scope: "all" })
|
|
59
59
|
```
|
|
60
60
|
|
|
61
61
|
### 2. Build the prompt
|
|
@@ -90,14 +90,16 @@ For batch generation, batch the confirmation:
|
|
|
90
90
|
|
|
91
91
|
> About to generate 3 trees + 3 rocks + 5 mushrooms (11 generations, ~5 min). All low-poly via `trellis`. OK?
|
|
92
92
|
|
|
93
|
+
`dryRun: true` on one call gives its credits (`estimate.credits`) for the batch confirmation. Start every generation of the batch first, then wait on the jobs.
|
|
94
|
+
|
|
93
95
|
```
|
|
94
|
-
|
|
95
|
-
prompt
|
|
96
|
-
model
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
)
|
|
100
|
-
|
|
96
|
+
assets.generate_3d({
|
|
97
|
+
prompt: "A tall pine tree with dense green needles and a straight trunk, slight lean. Game asset, stylized low-poly game art, white background, isolated object.",
|
|
98
|
+
model: "trellis",
|
|
99
|
+
targetPolycount: 2000
|
|
100
|
+
})
|
|
101
|
+
jobs.wait({ jobId: "<job.id>", timeoutSeconds: 50 }) // again until finished; result.assetId
|
|
102
|
+
assets.get({ assetId: "<assetId>" })
|
|
101
103
|
summer_import_asset_by_id(assetId="<assetId>", path="res://assets/organic/pine_tree_01.glb")
|
|
102
104
|
```
|
|
103
105
|
|
|
@@ -168,6 +170,10 @@ In a 200-tree forest, only the ~10 closest trees need to be real meshes; the oth
|
|
|
168
170
|
- **Crystal/glass organic.** Mesh comes back opaque. Generate the geometry, then assign a `StandardMaterial3D` with `transparency = ALPHA` and emissive in the editor.
|
|
169
171
|
- **Bones, skulls, dead trees.** All work; organic forgives them more than props would. Add `weathered, sun-bleached` for desert / tundra feel.
|
|
170
172
|
|
|
173
|
+
## Without Summer Engine
|
|
174
|
+
|
|
175
|
+
In a session without Summer Engine tools (the assets profile; the `summer-assets` skill has the whole loop), do steps 1-4 and skip steps 5-6 (scene wiring, LOD). Save the file where the person asked with `out` (the `summer-assets` skill says how), and tell them the path and format. The file is GLB; level of detail and billboards are the person's engine's job.
|
|
176
|
+
|
|
171
177
|
## Fallback (no MCP)
|
|
172
178
|
|
|
173
179
|
1. Run prompts at the Summer dashboard or any 3D-gen web playground (Hunyuan, Trellis, Meshy).
|
|
@@ -193,4 +199,28 @@ After the organic models are scattered:
|
|
|
193
199
|
- `environment-kit` — pair with this skill: kit pieces give the architecture, organic gives the natural softness.
|
|
194
200
|
- `asset-strategy` — meta-router; ground textures and skyboxes go to Pipeline 2 / panoramic gen.
|
|
195
201
|
- `scene-composition` — MultiMeshInstance3D scatter pattern.
|
|
196
|
-
-
|
|
202
|
+
- `summer_docs_read` id `reference/mcp-tools-reference` — how to call `assets.generate_3d`; `summer_search` returns its exact input.
|
|
203
|
+
|
|
204
|
+
<!-- shell-commands: generated from the operation catalog by npm run generate:registry; do not edit by hand -->
|
|
205
|
+
## From a shell
|
|
206
|
+
|
|
207
|
+
No Summer MCP tools in this session? Run each one as a command; when `summer --version` is missing or below 4.0, use `npx -y summer-engine@latest` in place of `summer`. Fields are flags in kebab-case (`--scene-path res://main.tscn`) or one `--input '<json>'`, and `summer ops describe <op>` prints the exact input. The `summer-cli` skill has the rest.
|
|
208
|
+
|
|
209
|
+
| In this skill | Command |
|
|
210
|
+
|---|---|
|
|
211
|
+
| `assets.generate_3d`, `summer_assets_generate_3d` | `summer assets generate-3d` |
|
|
212
|
+
| `summer_assets_generate_image` | `summer assets generate-image` |
|
|
213
|
+
| `summer_assets_get` | `summer assets get` |
|
|
214
|
+
| `summer_assets_search` | `summer assets search` |
|
|
215
|
+
| `summer_docs_read` | `summer docs read` |
|
|
216
|
+
| `summer_add_node` | `summer engine add-node` |
|
|
217
|
+
| `summer_get_scene_tree` | `summer engine get-scene-tree` |
|
|
218
|
+
| `summer_import_asset_by_id` | `summer engine import-asset-by-id` |
|
|
219
|
+
| `summer_import_from_url` | `summer engine import-from-url` |
|
|
220
|
+
| `summer_inspect_node` | `summer engine inspect-node` |
|
|
221
|
+
| `summer_instantiate_scene` | `summer engine instantiate-scene` |
|
|
222
|
+
| `summer_save_scene` | `summer engine save-scene` |
|
|
223
|
+
| `summer_set_prop` | `summer engine set-prop` |
|
|
224
|
+
| `jobs.wait`, `summer_jobs_wait` | `summer jobs wait` |
|
|
225
|
+
| `summer_search` | `summer ops search "<what you want>"` |
|
|
226
|
+
<!-- /shell-commands -->
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
id: skill/organic-model
|
|
2
2
|
kind: skill
|
|
3
3
|
version: 1.0.3
|
|
4
|
-
summary: Generate organic 3D shapes
|
|
4
|
+
summary: "Generate organic 3D shapes (trees, rocks, mushrooms, plants, crystals) where irregularity looks natural."
|
|
5
5
|
use_when:
|
|
6
6
|
- generating organic shapes — trees, rocks, mushrooms, coral, bushes, alien plants, vines, crystals, fruit, bones
|
|
7
7
|
- a level needs vegetation, rocks, or other natural shapes where irregularity reads as realism
|