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,7 +1,7 @@
|
|
|
1
1
|
id: skill/agent-playtesting
|
|
2
2
|
kind: skill
|
|
3
3
|
version: 1.0.0
|
|
4
|
-
summary: Playtest by driving the
|
|
4
|
+
summary: "Playtest by driving the live game: deterministic launch, frame-stamped probes, scripted or recorded input."
|
|
5
5
|
use_when:
|
|
6
6
|
- proving a gameplay feature works by driving the running game frame by frame with the runtime tools (summer_game_probe, summer_game_input, summer_game_control, summer_runtime_set/call/spawn/animate)
|
|
7
7
|
- a bug repro or an A/B needs a deterministic launch (seed, fixed frame rate, offscreen instance), a recorded input replay, or two instances side by side
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ai-characters-in-games
|
|
3
|
-
description: "Safe AI characters in published games: no keys in the build,
|
|
3
|
+
description: "Safe AI characters in published games: no keys in the build, Summer's player AI gateway, moderation, caps."
|
|
4
4
|
license: MIT
|
|
5
5
|
compatibility: [Cursor, Claude Code, Windsurf, Codex]
|
|
6
6
|
category: ai-and-npcs
|
|
@@ -218,3 +218,18 @@ func _gateway() -> Object:
|
|
|
218
218
|
- Retrying on `limit_exceeded` or `credits_exhausted`. The limit is the product working.
|
|
219
219
|
- Putting a provider key in the project "until Summer is live". There is no bring-your-own-key path; keys in builds leak.
|
|
220
220
|
- Letting the model decide rewards because "it only suggests". It will be talked into suggesting everything.
|
|
221
|
+
|
|
222
|
+
<!-- shell-commands: generated from the operation catalog by npm run generate:registry; do not edit by hand -->
|
|
223
|
+
## From a shell
|
|
224
|
+
|
|
225
|
+
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.
|
|
226
|
+
|
|
227
|
+
| In this skill | Command |
|
|
228
|
+
|---|---|
|
|
229
|
+
| `summer_add_node` | `summer engine add-node` |
|
|
230
|
+
| `summer_connect_signal` | `summer engine connect-signal` |
|
|
231
|
+
| `summer_get_scene_tree` | `summer engine get-scene-tree` |
|
|
232
|
+
| `summer_get_script_errors` | `summer engine get-script-errors` |
|
|
233
|
+
| `summer_save_scene` | `summer engine save-scene` |
|
|
234
|
+
| `summer_set_prop` | `summer engine set-prop` |
|
|
235
|
+
<!-- /shell-commands -->
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
id: skill/ai-characters-in-games
|
|
2
2
|
kind: skill
|
|
3
3
|
version: 0.3.0
|
|
4
|
-
summary: "Safe AI characters in published games: no keys in the build,
|
|
4
|
+
summary: "Safe AI characters in published games: no keys in the build, Summer's player AI gateway, moderation, caps."
|
|
5
5
|
use_when:
|
|
6
6
|
- a character, creature or object should answer free-form player text or speech in a published game (talking flowers, shopkeepers, companions)
|
|
7
7
|
- about to put a model name, a provider SDK or a provider key into a game project
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ambient-bed
|
|
3
|
-
description: "Generate a long looping location ambience
|
|
3
|
+
description: "Generate a long looping location ambience (forest, dungeon, city, cave) on the Ambient bus."
|
|
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/ambient/**", "**/*.tscn", "**/*.import"]
|
|
10
10
|
---
|
|
11
11
|
|
|
@@ -15,7 +15,7 @@ paths: ["audio/ambient/**", "**/*.tscn", "**/*.import"]
|
|
|
15
15
|
|
|
16
16
|
An ambient bed is the *air* of a place. Forest at dawn, dungeon corridor, spaceship hum, market street, ocean cave. It plays at low energy under everything else and is never melodic. Players rarely notice a bed, but they notice the silence when a level has none.
|
|
17
17
|
|
|
18
|
-
This is **not** music. Use `
|
|
18
|
+
This is **not** music. Use `assets.generate_audio({ capability: 'sound_effects' })`, not `{ capability: 'music' }`: the SFX model renders texture, the music model renders melody.
|
|
19
19
|
|
|
20
20
|
Generated at 15–22 seconds (the SFX duration ceiling) and looped with a Summer
|
|
21
21
|
Engine import loop point and optional crossfade.
|
|
@@ -101,17 +101,17 @@ If the user wants a busier bed (market, party), still prevent foreground events:
|
|
|
101
101
|
### 5. Generate at the duration ceiling
|
|
102
102
|
|
|
103
103
|
```
|
|
104
|
-
|
|
104
|
+
assets.generate_audio({
|
|
105
105
|
capability: "sound_effects",
|
|
106
106
|
modelId: "eleven_text_to_sound_v2",
|
|
107
107
|
loop: true,
|
|
108
108
|
text: "forest at dawn, gentle wind through leaves, distant bird calls every 6 seconds, soft creaking branches, no music, no human sound, 22s seamless loop",
|
|
109
109
|
durationSeconds: 22
|
|
110
|
-
)
|
|
111
|
-
// Then: summer_import_from_url(url: "<fileUrl>", path: "res://audio/ambient/forest_dawn.wav")
|
|
110
|
+
})
|
|
111
|
+
// Then: summer_import_from_url(url: "<asset.fileUrl>", path: "res://audio/ambient/forest_dawn.wav")
|
|
112
112
|
```
|
|
113
113
|
|
|
114
|
-
Name `modelId: "eleven_text_to_sound_v2"` with `loop: true`: it is the only sound-effect model that makes seamless loops, and without a `modelId` the person's default sound-effect model runs, which may not loop. `sound_effects` reads from **`text`**, not `prompt` —
|
|
114
|
+
Name `modelId: "eleven_text_to_sound_v2"` with `loop: true`: it is the only sound-effect model that makes seamless loops, and without a `modelId` the person's default sound-effect model runs, which may not loop. `sound_effects` reads from **`text`**, not `prompt` — without `text` the call is refused (`text_required`). (`prompt` is the `music` capability's field.) The clip comes back as WAV, so a `.wav` target path is correct.
|
|
115
115
|
|
|
116
116
|
22s is the SFX ceiling. Always generate at the ceiling for ambient — longer cycle means less recognized repetition.
|
|
117
117
|
|
|
@@ -196,11 +196,16 @@ This eliminates the click and adds variation through phase-overlap (the loop ove
|
|
|
196
196
|
For most beds, non-positional is correct (the player is *in* the place; the bed isn't an emitter):
|
|
197
197
|
|
|
198
198
|
```
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
199
|
+
summer_run_script(scenePath="res://levels/level_01.tscn", source="""
|
|
200
|
+
func run(ctx):
|
|
201
|
+
ctx.add_node("AudioStreamPlayer", "AmbientBed", ctx.find("Level"), {
|
|
202
|
+
"stream": load("res://audio/ambient/forest_dawn.wav"),
|
|
203
|
+
"bus": "Ambient",
|
|
204
|
+
"volume_db": -12.0,
|
|
205
|
+
"autoplay": true,
|
|
206
|
+
})
|
|
207
|
+
ctx.save_scene()
|
|
208
|
+
""")
|
|
204
209
|
```
|
|
205
210
|
|
|
206
211
|
Or attach the script in step 7 to a Node, set its `stream` to the imported audio, and skip the `AudioStreamPlayer` node — the script provides its own.
|
|
@@ -249,7 +254,7 @@ Boss arena: vast stone arena, low ominous drone, distant rumble,
|
|
|
249
254
|
|
|
250
255
|
## Anti-patterns
|
|
251
256
|
|
|
252
|
-
- **Using `
|
|
257
|
+
- **Using `assets.generate_audio({ capability: 'music' })` for an ambient bed.** Music model adds melody. You don't want melody.
|
|
253
258
|
- **Foreground events in the bed.** A wolf howl, an explosion, a clear word — these promote themselves and the bed becomes annoying.
|
|
254
259
|
- **Bed louder than `-10 dB` on its bus.** Beds belong under everything; default is `-12 dB` to `-15 dB`.
|
|
255
260
|
- **No loop point set.** The clip plays once and silence follows.
|
|
@@ -265,6 +270,10 @@ Boss arena: vast stone arena, low ominous drone, distant rumble,
|
|
|
265
270
|
- **Need positional bed (a campfire crackle).** Use `AudioStreamPlayer3D` with `max_distance` matching the campfire's reasonable hearing radius (4–8m typical).
|
|
266
271
|
- **Multi-room transitions.** Use Areas; on player enter, fade in destination bed and fade out source bed over 1.5s.
|
|
267
272
|
|
|
273
|
+
## Without Summer Engine
|
|
274
|
+
|
|
275
|
+
In a session without Summer Engine tools (the assets profile; the `summer-assets` skill has the whole loop), do steps 1-5 and stop when the bed exists. Skip steps 6-9: the loop point, the crossfade script and the `AudioStreamPlayer` are Summer Engine work. Save the file where the person asked with `out` (the `summer-assets` skill says how), and tell them the path and format. Tell the person it is a long bed made to loop: their engine either loops it with a short crossfade or plays two copies that overlap.
|
|
276
|
+
|
|
268
277
|
## Fallback (no MCP)
|
|
269
278
|
|
|
270
279
|
Print the SFX prompt and the import dock settings. User runs via the Summer dashboard and imports manually.
|
|
@@ -282,3 +291,19 @@ Print the SFX prompt and the import dock settings. User runs via the Summer dash
|
|
|
282
291
|
- `sound-effect` — short event SFX layered over the bed
|
|
283
292
|
- `music-track` — melodic music layered over the bed
|
|
284
293
|
- `adaptive-music` — state-driven crossfades use the same pattern
|
|
294
|
+
|
|
295
|
+
<!-- shell-commands: generated from the operation catalog by npm run generate:registry; do not edit by hand -->
|
|
296
|
+
## From a shell
|
|
297
|
+
|
|
298
|
+
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.
|
|
299
|
+
|
|
300
|
+
| In this skill | Command |
|
|
301
|
+
|---|---|
|
|
302
|
+
| `assets.generate_audio`, `summer_assets_generate_audio` | `summer assets generate-audio` |
|
|
303
|
+
| `summer_assets_search` | `summer assets search` |
|
|
304
|
+
| `summer_add_node` | `summer engine add-node` |
|
|
305
|
+
| `summer_import_from_url` | `summer engine import-from-url` |
|
|
306
|
+
| `summer_inspect_node` | `summer engine inspect-node` |
|
|
307
|
+
| `summer_run_script` | `summer engine run-script` |
|
|
308
|
+
| `summer_set_prop` | `summer engine set-prop` |
|
|
309
|
+
<!-- /shell-commands -->
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
id: skill/ambient-bed
|
|
2
2
|
kind: skill
|
|
3
3
|
version: 1.0.3
|
|
4
|
-
summary: Generate a long looping location ambience
|
|
4
|
+
summary: "Generate a long looping location ambience (forest, dungeon, city, cave) on the Ambient bus."
|
|
5
5
|
use_when:
|
|
6
6
|
- generating a long looping location ambience — forest at dawn, dungeon air, city street, spaceship hum, cave drip — non-melodic and low-energy
|
|
7
7
|
- a location feels silent and needs a continuous soundscape beneath the score and effects
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: animated-loop
|
|
3
|
-
description: "Generate a short
|
|
3
|
+
description: "Generate a short seamless video loop: splash background, animated logo backdrop, idle title screen."
|
|
4
4
|
license: MIT
|
|
5
5
|
compatibility: [Cursor, Claude Code, Windsurf, Codex]
|
|
6
6
|
category: video
|
|
7
7
|
user-invocable: true
|
|
8
|
-
allowed-tools: Read Grep Glob Write Edit
|
|
8
|
+
allowed-tools: Read Grep Glob Write Edit summer_assets_generate_video summer_jobs_wait summer_assets_generate_image summer_assets_search summer_import_from_url summer_add_node summer_set_prop summer_call
|
|
9
9
|
paths: ["assets/video/**", "menus/**", "ui/**"]
|
|
10
10
|
---
|
|
11
11
|
|
|
@@ -13,7 +13,7 @@ paths: ["assets/video/**", "menus/**", "ui/**"]
|
|
|
13
13
|
|
|
14
14
|
A loop is the only video format that has to *not have* a beginning or end. The viewer sees it on the title screen for 30 seconds; if the seam between loop iterations is visible, the whole thing reads as broken. This skill exists to force the constraints that make seams invisible: take the shortest duration available, keep the motion ambient (no narrative, no big camera moves), use the fast model (`ltx`), and prompt for a composition where the first and last frames are functionally identical.
|
|
15
15
|
|
|
16
|
-
**Duration is not a dial here.** `
|
|
16
|
+
**Duration is not a dial here.** On `ltx` and `kling`, `assets.generate_video` renders only `duration: 5` or `duration: 10`; every other value renders 5. So "drop to 3s to hide the seam" is not an option — 5s is the floor, and the seam has to be won in the prompt and the reference frame instead.
|
|
17
17
|
|
|
18
18
|
If the user wants a 5s punchy marketing shot, that's `trailer-shot`. If they want a 10s narrative cutscene, that's `cinematic-cutscene`. This skill is the one for video that has to *disappear* — atmosphere behind a logo, mood behind a menu, ambience behind a splash card.
|
|
19
19
|
|
|
@@ -46,13 +46,12 @@ If the user wants narrative motion (a character walking, a door opening), this i
|
|
|
46
46
|
|
|
47
47
|
For loops, `ltx` is almost always right. It takes ~30s, and short ambient motion is what it handles best. The premium models cost more credits and do not loop better.
|
|
48
48
|
|
|
49
|
-
This skill always passes `imageUrl` (step 3), which puts every call on the image-to-video route
|
|
49
|
+
This skill always passes `imageUrl` (step 3), which puts every call on the image-to-video route. `kling-turbo` and `veo3` are text-to-video only; pairing either with an `imageUrl` is a 400 `invalid_model`, not a silent downgrade.
|
|
50
50
|
|
|
51
51
|
| Model | i2v? | Speed | When |
|
|
52
52
|
|---|---|---|---|
|
|
53
53
|
| `ltx` | yes | ~30s | Default. Use this. |
|
|
54
54
|
| `kling` | yes | 2-4 min | Only if the loop is the centerpiece of a premium splash and quality is visibly lacking on `ltx` |
|
|
55
|
-
| `minimax` | yes | 2-3 min | Stylized / anime aesthetic loops |
|
|
56
55
|
| `kling-turbo` | **no** | 1-2 min | Not reachable from this skill — text-to-video only |
|
|
57
56
|
| `veo3` | **no** | 3-5 min | Not reachable from this skill, and pointless for ambient loops anyway |
|
|
58
57
|
|
|
@@ -61,15 +60,16 @@ This skill always passes `imageUrl` (step 3), which puts every call on the image
|
|
|
61
60
|
The reference still doubles as the *target* loop frame. Generate it deliberately — the video model's first and last frames will gravitate toward the reference, which is exactly what you want for a closing seam.
|
|
62
61
|
|
|
63
62
|
```
|
|
64
|
-
|
|
65
|
-
prompt
|
|
66
|
-
model
|
|
67
|
-
|
|
63
|
+
assets.generate_image({
|
|
64
|
+
prompt: "<subject>, ambient atmospheric scene, cinematic lighting, painterly, wide framing, balanced composition with no clear focal action",
|
|
65
|
+
model: "nano-banana-2",
|
|
66
|
+
aspectRatio: "16:9"
|
|
67
|
+
})
|
|
68
68
|
```
|
|
69
69
|
|
|
70
|
-
|
|
70
|
+
Set `aspectRatio` to the screen the loop fills (`16:9`, or `9:16` for a vertical mobile splash).
|
|
71
71
|
|
|
72
|
-
On the image-to-video route `aspectRatio` is **not applied at all** — the clip inherits the reference image's framing. So a vertical mobile splash needs a 9:16 reference image, and setting `aspectRatio
|
|
72
|
+
On the image-to-video route `aspectRatio` is **not applied at all** — the clip inherits the reference image's framing. So a vertical mobile splash needs a 9:16 reference image, and setting `aspectRatio: "9:16"` on the video call does nothing.
|
|
73
73
|
|
|
74
74
|
### 4. Prompt for loopable motion only
|
|
75
75
|
|
|
@@ -80,20 +80,20 @@ Loopable verbs: `drift`, `flicker`, `swirl`, `shimmer`, `sway`, `pulse`, `glow`,
|
|
|
80
80
|
Non-loopable verbs (avoid): `walks`, `enters`, `appears`, `emerges`, `transforms`, `attacks`, `falls down`, `opens`, `closes`.
|
|
81
81
|
|
|
82
82
|
```
|
|
83
|
-
|
|
84
|
-
prompt
|
|
85
|
-
model
|
|
86
|
-
imageUrl
|
|
87
|
-
duration
|
|
88
|
-
|
|
89
|
-
)
|
|
83
|
+
assets.generate_video({
|
|
84
|
+
prompt: "<subject from reference>, <ambient loopable motion>, slow continuous, looping, seamless, cinematic",
|
|
85
|
+
model: "ltx",
|
|
86
|
+
imageUrl: "<reference URL from step 3>",
|
|
87
|
+
duration: 5,
|
|
88
|
+
negativePrompt: "sudden movement, character action, narrative event, fade to black"
|
|
89
|
+
})
|
|
90
90
|
```
|
|
91
91
|
|
|
92
|
-
The phrase **"looping, seamless"** in the prompt biases the model toward stable first/last frames
|
|
92
|
+
The phrase **"looping, seamless"** in the prompt biases the model toward stable first/last frames, and `negativePrompt` rules out narrative drift. Images have no negative prompt: put negations in the image prompt text.
|
|
93
93
|
|
|
94
94
|
`aspectRatio` is omitted deliberately: it is applied on the text-to-video path only, and this call passes `imageUrl`.
|
|
95
95
|
|
|
96
|
-
The call
|
|
96
|
+
The call answers at once with `{ status: "running", job: { id } }` and **no URL**. Call `jobs.wait({ jobId: "<job.id>", timeoutSeconds: 50 })` until `finished` is true; only a `done` job's `result` holds the clip.
|
|
97
97
|
|
|
98
98
|
### 5. Inspect the seam
|
|
99
99
|
|
|
@@ -125,19 +125,24 @@ ffmpeg -i title_screen_bg.mp4 -c:v libtheora -q:v 8 -an title_screen_bg.ogv
|
|
|
125
125
|
summer_import_from_url(url="<hosted .ogv url>", path="res://assets/video/loops/title_screen_bg.ogv")
|
|
126
126
|
```
|
|
127
127
|
|
|
128
|
-
Then wire it
|
|
128
|
+
Then wire it in one script. `scenePath` is the exact scene to change:
|
|
129
129
|
|
|
130
130
|
```
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
131
|
+
summer_run_script(scenePath="res://ui/title_screen.tscn", source="""
|
|
132
|
+
func run(ctx):
|
|
133
|
+
var loop_player = ctx.add_node("VideoStreamPlayer", "BackgroundLoop", null, {
|
|
134
|
+
"stream": load("res://assets/video/loops/title_screen_bg.ogv"),
|
|
135
|
+
"autoplay": true,
|
|
136
|
+
"loop": true,
|
|
137
|
+
"expand": true,
|
|
138
|
+
})
|
|
139
|
+
loop_player.set_anchors_and_offsets_preset(Control.PRESET_FULL_RECT) # the loop fills the menu
|
|
140
|
+
ctx.get_scene_root().move_child(loop_player, 0) # drawn first: the menu draws on top
|
|
141
|
+
ctx.save_scene()
|
|
142
|
+
""")
|
|
138
143
|
```
|
|
139
144
|
|
|
140
|
-
|
|
145
|
+
Controls draw in tree order and later siblings render on top, so the logo and menu buttons come after the `VideoStreamPlayer` in the tree.
|
|
141
146
|
|
|
142
147
|
### 7. Mute the audio track
|
|
143
148
|
|
|
@@ -161,7 +166,7 @@ Pattern: `<subject> + <ambient loopable motion> + <constant lighting> + "looping
|
|
|
161
166
|
| Logo backdrop — magic runes | `ltx` | `dark surface with glowing blue runes pulsing softly in slow rhythm, faint shimmer, no narrative motion, looping, seamless` | 5s |
|
|
162
167
|
| Menu — underwater | `ltx` | `underwater scene with caustic light dancing on a sandy floor, slow drifting bubbles, gentle current sway on kelp, looping, seamless` | 5s |
|
|
163
168
|
| Pause screen — slow rain | `ltx` | `window pane with continuous gentle rain drops, blurred warm interior glow behind, looping, seamless, ambient` | 5s |
|
|
164
|
-
| Title — anime sky | `
|
|
169
|
+
| Title — anime sky | `ltx` | `anime style cumulus clouds drifting slowly across a pastel sunset sky, soft, painterly, looping, seamless, Ghibli` | 5s |
|
|
165
170
|
| Premium splash centerpiece | `kling` | `dragon silhouette breathing in profile against a vast sunset sky, only the chest rising and falling and clouds drifting, looping, seamless` | 5s |
|
|
166
171
|
|
|
167
172
|
### Bad prompts and why
|
|
@@ -177,7 +182,7 @@ Pattern: `<subject> + <ambient loopable motion> + <constant lighting> + "looping
|
|
|
177
182
|
## Anti-patterns
|
|
178
183
|
|
|
179
184
|
- **Asking the model for a 10s loop.** Past ~6s, identity drifts and the seam shows. `duration=5` is both the floor and the right answer; 10 is the only other value the API accepts.
|
|
180
|
-
- **Treating `
|
|
185
|
+
- **Treating `assets.generate_video` as finished.** It answers `{ status: "running", job }` and no URL. Wait with `jobs.wait` before claiming a clip exists.
|
|
181
186
|
- **Using `kling` for a loop.** `ltx` is almost always right; short ambient motion is what it does best.
|
|
182
187
|
- **Prompting narrative motion.** "Hero draws sword" doesn't loop. Use ambient verbs.
|
|
183
188
|
- **Forgetting `loop=true` on the `VideoStreamPlayer`.** The clip will play once and freeze on the last frame.
|
|
@@ -193,6 +198,10 @@ Pattern: `<subject> + <ambient loopable motion> + <constant lighting> + "looping
|
|
|
193
198
|
- **Loop is behind translucent UI.** Generate with extra contrast headroom — the model tends toward mid-grey, and translucent UI on mid-grey reads muddy. Push for `high contrast cinematic` in the prompt.
|
|
194
199
|
- **Loop seam still visible after 3 regens.** Set up two `VideoStreamPlayer` siblings and crossfade between them with a `Tween` on a 0.5s overlap. Costs an extra GPU decode but hides the seam.
|
|
195
200
|
|
|
201
|
+
## Without Summer Engine
|
|
202
|
+
|
|
203
|
+
In a session without Summer Engine tools (the assets profile; the `summer-assets` skill has the whole loop), do steps 1-5 and stop when the seam passes. Skip steps 6-7 (the `VideoStreamPlayer` and its audio). 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 MP4; tell the person to play it looped and muted.
|
|
204
|
+
|
|
196
205
|
## Fallback (no MCP)
|
|
197
206
|
|
|
198
207
|
If the MCP server isn't running, route the user to the Summer dashboard:
|
|
@@ -221,4 +230,23 @@ Once the loop is wired:
|
|
|
221
230
|
- `music-track` — score the menu.
|
|
222
231
|
- `ui-graphics` — logo, menu buttons, HUD that sits over the loop.
|
|
223
232
|
- `concept-art` — produce the reference still that anchors the loop.
|
|
224
|
-
-
|
|
233
|
+
- `summer_docs_read` id `reference/mcp-tools-reference` — how to call `assets.generate_video`; `summer_search` returns its exact input.
|
|
234
|
+
|
|
235
|
+
<!-- shell-commands: generated from the operation catalog by npm run generate:registry; do not edit by hand -->
|
|
236
|
+
## From a shell
|
|
237
|
+
|
|
238
|
+
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.
|
|
239
|
+
|
|
240
|
+
| In this skill | Command |
|
|
241
|
+
|---|---|
|
|
242
|
+
| `summer_assets_generate_image` | `summer assets generate-image` |
|
|
243
|
+
| `assets.generate_video`, `summer_assets_generate_video` | `summer assets generate-video` |
|
|
244
|
+
| `summer_assets_search` | `summer assets search` |
|
|
245
|
+
| `summer_docs_read` | `summer docs read` |
|
|
246
|
+
| `summer_add_node` | `summer engine add-node` |
|
|
247
|
+
| `summer_import_from_url` | `summer engine import-from-url` |
|
|
248
|
+
| `summer_run_script` | `summer engine run-script` |
|
|
249
|
+
| `summer_set_prop` | `summer engine set-prop` |
|
|
250
|
+
| `jobs.wait`, `summer_jobs_wait` | `summer jobs wait` |
|
|
251
|
+
| `summer_search` | `summer ops search "<what you want>"` |
|
|
252
|
+
<!-- /shell-commands -->
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
id: skill/animated-loop
|
|
2
2
|
kind: skill
|
|
3
3
|
version: 1.0.4
|
|
4
|
-
summary: Generate a short
|
|
4
|
+
summary: "Generate a short seamless video loop: splash background, animated logo backdrop, idle title screen."
|
|
5
5
|
use_when:
|
|
6
6
|
- generating a short looping video clip — splash screen background, animated logo backdrop, idle title-screen footage, looping environment ambience
|
|
7
7
|
- an idle backdrop behind the UI needs subtle motion without a real-time animated scene
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: animation-tree
|
|
3
|
-
description: "
|
|
3
|
+
description: "Wire AnimationTree state machines and blend trees: locomotion blends, attack interrupts, hit reactions."
|
|
4
4
|
license: MIT
|
|
5
5
|
compatibility: [Cursor, Claude Code, Windsurf, Codex]
|
|
6
6
|
category: animation
|
|
@@ -299,3 +299,29 @@ the same `.tres`; it is slower but discoverable.
|
|
|
299
299
|
- `character-animation-wiring` — the end-to-end rigged-GLB path: inspect real clip/bone names, `ctx.anim_state_machine`, method tracks, root motion, playtest verification.
|
|
300
300
|
- `generate-motion` — produce the clips this tree references.
|
|
301
301
|
- `retarget` — share one tree across many characters.
|
|
302
|
+
|
|
303
|
+
<!-- shell-commands: generated from the operation catalog by npm run generate:registry; do not edit by hand -->
|
|
304
|
+
## From a shell
|
|
305
|
+
|
|
306
|
+
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.
|
|
307
|
+
|
|
308
|
+
| In this skill | Command |
|
|
309
|
+
|---|---|
|
|
310
|
+
| `summer_add_node` | `summer engine add-node` |
|
|
311
|
+
| `summer_connect_signal` | `summer engine connect-signal` |
|
|
312
|
+
| `summer_get_diagnostics` | `summer engine get-diagnostics` |
|
|
313
|
+
| `summer_get_project_context` | `summer engine get-project-context` |
|
|
314
|
+
| `summer_get_scene_tree` | `summer engine get-scene-tree` |
|
|
315
|
+
| `summer_get_script_errors` | `summer engine get-script-errors` |
|
|
316
|
+
| `summer_inspect_node` | `summer engine inspect-node` |
|
|
317
|
+
| `summer_inspect_resource` | `summer engine inspect-resource` |
|
|
318
|
+
| `summer_instantiate_scene` | `summer engine instantiate-scene` |
|
|
319
|
+
| `summer_play` | `summer engine play` |
|
|
320
|
+
| `summer_remove_node` | `summer engine remove-node` |
|
|
321
|
+
| `summer_replace_node` | `summer engine replace-node` |
|
|
322
|
+
| `summer_run_script` | `summer engine run-script` |
|
|
323
|
+
| `summer_save_scene` | `summer engine save-scene` |
|
|
324
|
+
| `summer_set_prop` | `summer engine set-prop` |
|
|
325
|
+
| `summer_set_resource_property` | `summer engine set-resource-property` |
|
|
326
|
+
| `summer_stop` | `summer engine stop` |
|
|
327
|
+
<!-- /shell-commands -->
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
id: skill/animation-tree
|
|
2
2
|
kind: skill
|
|
3
3
|
version: 1.0.1
|
|
4
|
-
summary:
|
|
4
|
+
summary: "Wire AnimationTree state machines and blend trees: locomotion blends, attack interrupts, hit reactions."
|
|
5
5
|
use_when:
|
|
6
6
|
- the character has clips that must play in response to gameplay — idle/walk/run blends, attacks that interrupt locomotion, hit reactions
|
|
7
7
|
- a character keeps T-posing
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: art-direction
|
|
3
|
-
description: "Define the game's visual style
|
|
3
|
+
description: "Define the game's visual style (palette, mood, lighting, post) as an art bible in .summer/art-bible.md."
|
|
4
4
|
license: MIT
|
|
5
5
|
compatibility: [Cursor, Claude Code, Windsurf, Codex]
|
|
6
6
|
category: rendering-and-lighting
|
|
@@ -185,7 +185,7 @@ If a `WorldEnvironment` node is in the main scene, set its environment defaults
|
|
|
185
185
|
|
|
186
186
|
```
|
|
187
187
|
summer_inspect_node(path="./World/WorldEnvironment")
|
|
188
|
-
summer_set_prop(path="./World/WorldEnvironment/...", key="...", value="...")
|
|
188
|
+
summer_set_prop(scenePath="res://main.tscn", path="./World/WorldEnvironment/...", key="...", value="...")
|
|
189
189
|
```
|
|
190
190
|
|
|
191
191
|
Ask before each:
|
|
@@ -247,7 +247,7 @@ End with:
|
|
|
247
247
|
> - `/audio-direction` to define the sonic identity that pairs with this look.
|
|
248
248
|
> - `/game-feel` to design particle / hit-feedback styles within the palette.
|
|
249
249
|
> - Open the project's `WorldEnvironment` node and dial in the lighting plan.
|
|
250
|
-
> - Or generate first-pass concept assets via `
|
|
250
|
+
> - Or generate first-pass concept assets via `assets.generate_image` using the palette + mood as the prompt prefix.
|
|
251
251
|
|
|
252
252
|
## Common mistakes
|
|
253
253
|
|
|
@@ -277,3 +277,17 @@ No template — this is a workflow that produces the bible the rest of the proje
|
|
|
277
277
|
- `brainstorm-game` — produces the brief that anchors the bible
|
|
278
278
|
- `audio-direction` — the sonic counterpart
|
|
279
279
|
- `3d-lighting` — implements the lighting plan and the environment's glow, tonemap and SSAO settings
|
|
280
|
+
|
|
281
|
+
<!-- shell-commands: generated from the operation catalog by npm run generate:registry; do not edit by hand -->
|
|
282
|
+
## From a shell
|
|
283
|
+
|
|
284
|
+
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.
|
|
285
|
+
|
|
286
|
+
| In this skill | Command |
|
|
287
|
+
|---|---|
|
|
288
|
+
| `assets.generate_image` | `summer assets generate-image` |
|
|
289
|
+
| `summer_get_project_context` | `summer engine get-project-context` |
|
|
290
|
+
| `summer_inspect_node` | `summer engine inspect-node` |
|
|
291
|
+
| `summer_project_setting` | `summer engine project-setting` |
|
|
292
|
+
| `summer_set_prop` | `summer engine set-prop` |
|
|
293
|
+
<!-- /shell-commands -->
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
id: skill/art-direction
|
|
2
2
|
kind: skill
|
|
3
3
|
version: 1.0.2
|
|
4
|
-
summary: Define the game's visual style
|
|
4
|
+
summary: "Define the game's visual style (palette, mood, lighting, post) as an art bible in .summer/art-bible.md."
|
|
5
5
|
use_when:
|
|
6
6
|
- defining the visual style of the game — references, palette, mood, lighting plan, post-processing
|
|
7
7
|
- make it look like PS1, retro, low-poly, pixel art, cel-shaded, or a horror aesthetic
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: asset-strategy
|
|
3
|
-
description: "Route any 'I need a [thing]' asset request to the right
|
|
3
|
+
description: "Route any 'I need a [thing]' asset request to the right skill: 2D, 3D, audio, video, VFX or animation."
|
|
4
4
|
license: MIT
|
|
5
5
|
compatibility: [Cursor, Claude Code, Windsurf, Codex]
|
|
6
6
|
category: asset-pipeline
|
|
7
7
|
user-invocable: false
|
|
8
|
-
allowed-tools: Read Grep Skill
|
|
8
|
+
allowed-tools: Read Grep Skill summer_assets_search summer_assets_get summer_import_asset_by_id summer_call
|
|
9
9
|
---
|
|
10
10
|
|
|
11
11
|
# Asset Strategy — Meta-Router for Asset Creation
|
|
@@ -114,22 +114,69 @@ VFX is **code, not generative** — recipes are shader + GDScript + node setup,
|
|
|
114
114
|
| Magic glow / aura | `vfx-magic-glow` |
|
|
115
115
|
| Camera shake / hit-stop | `game-feel` |
|
|
116
116
|
|
|
117
|
+
## How the specialists call Summer
|
|
118
|
+
|
|
119
|
+
The specialists name Summer's asset work by operation. A call written `area.action({...})` is one operation: use the tool `summer_area_action` when your client lists it, else `summer_call({ op: "area.action", input: {...} })`. `summer_search` finds any operation and its exact input.
|
|
120
|
+
|
|
121
|
+
- **Find and read:** `assets.search({ query, scope })` (`scope`: `library` (default), `mine` for their own, `all`), then `assets.get({ assetId })` for the file, `downloadUrl` and `viewerUrl`. Reuse before generating.
|
|
122
|
+
- **Generate:** `assets.generate_image`, `assets.generate_3d`, `assets.generate_audio`, `assets.generate_video`, `assets.generate_motion`, `assets.generate_sfx_choices` (then `assets.choices` for the person's picks). They spend the person's credits; `dryRun: true` returns the estimate (`credits`, `balance`, `enough`) and makes nothing.
|
|
123
|
+
- **Wait:** 3D, video and animation answer at once with a job; `jobs.wait({ jobId, timeoutSeconds: 50 })` until `finished`, and the finished job's `result` holds the asset ids.
|
|
124
|
+
- **Save on this machine:** with the local Summer MCP or the CLI, `out` (a folder or a file path) on a generate call, `jobs.wait` or `assets.get` saves the file there, and the answer adds `localPath`.
|
|
125
|
+
- **Edit their assets:** `assets.remove_background`, `assets.slice_sheet`, `assets.update` (title, description, tags, private or team), `assets.make_public` (lists one for everyone in Summer's asset store), `assets.delete` (deletes for good; asks the person unless they let their agent delete, and then nothing is deleted until they confirm).
|
|
126
|
+
- **Permissions:** The person decides once what their agent may do: publishing (including `assets.make_public`), spending and building run at once by default, and deleting for good asks. An operation whose group they have not granted answers `needs_approval` with a link: give the link to the person, then `jobs.wait` on the `apr:` job.
|
|
127
|
+
- **Upload an image from disk:** `assets.upload_begin`, then `assets.upload_complete`.
|
|
128
|
+
- **One-shot makers:** `makers.<tool>` (for example `makers.npc_voice`, `makers.trailer_forge`); `summer_search` lists them.
|
|
129
|
+
|
|
117
130
|
## When NOT to use this skill
|
|
118
131
|
|
|
119
132
|
- The user already named the specific skill — go straight there.
|
|
120
133
|
- The user is debugging or running the game — route to `debug` or `play`.
|
|
121
|
-
- The asset is an existing Summer asset ID — call `
|
|
134
|
+
- The asset is an existing Summer asset ID — call `assets.get({ assetId })`, then `summer_import_asset_by_id`.
|
|
122
135
|
- The asset is being imported from a non-Summer URL (`.glb` / `.wav` from Sketchfab, Quaternius, AmbientCG) — call `summer_import_from_url` directly.
|
|
123
136
|
- The user wants to plan the whole game's asset list — `brainstorm-game` first, then this router on each item.
|
|
124
137
|
|
|
125
138
|
## Anti-patterns
|
|
126
139
|
|
|
127
|
-
- **Generating yourself instead of dispatching.** This file holds zero prompt patterns by design. If you're writing
|
|
140
|
+
- **Generating yourself instead of dispatching.** This file holds zero prompt patterns by design. If you're writing an `assets.generate_image` call from here, stop and invoke the specialist.
|
|
128
141
|
- **Skipping the disambiguation question.** Sends users to the wrong specialist and burns a paid generation. The verbatim phrasing in Step 2 is required.
|
|
129
142
|
- **Routing concept-art to character-portrait** (or the reverse). Different goals: concept-art produces 4 divergent variants for art direction; character-portrait produces 1 polished bust for dialogue UI.
|
|
130
143
|
- **Inventing skill names.** Only dispatch to skills listed above. If nothing fits, ask the user to clarify.
|
|
131
144
|
- **Routing rigged-humanoid requests to `prop-model`.** Anything that needs animation always goes to `character-model`.
|
|
132
145
|
|
|
146
|
+
## Without Summer Engine
|
|
147
|
+
|
|
148
|
+
In a session without Summer Engine tools (the assets profile; the `summer-assets` skill has the whole loop), the routing tables still pick the skill. Leave out every step that imports (`summer_import_asset_by_id`, `summer_import_from_url`): deliver the file with `out` instead (the `summer-assets` skill says how).
|
|
149
|
+
|
|
133
150
|
## Fallback (no MCP)
|
|
134
151
|
|
|
135
152
|
The router still works without MCP — classification is text-only. It hands off to the specialist, which surfaces its own no-MCP fallback (typically: run the same generation in the Summer dashboard, then `summer_import_from_url` once MCP is back).
|
|
153
|
+
|
|
154
|
+
<!-- shell-commands: generated from the operation catalog by npm run generate:registry; do not edit by hand -->
|
|
155
|
+
## From a shell
|
|
156
|
+
|
|
157
|
+
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.
|
|
158
|
+
|
|
159
|
+
| In this skill | Command |
|
|
160
|
+
|---|---|
|
|
161
|
+
| `assets.choices` | `summer assets choices` |
|
|
162
|
+
| `assets.delete` | `summer assets delete` |
|
|
163
|
+
| `assets.generate_3d` | `summer assets generate-3d` |
|
|
164
|
+
| `assets.generate_audio` | `summer assets generate-audio` |
|
|
165
|
+
| `assets.generate_image` | `summer assets generate-image` |
|
|
166
|
+
| `assets.generate_motion` | `summer assets generate-motion` |
|
|
167
|
+
| `assets.generate_sfx_choices` | `summer assets generate-sfx-choices` |
|
|
168
|
+
| `assets.generate_video` | `summer assets generate-video` |
|
|
169
|
+
| `assets.get`, `summer_assets_get` | `summer assets get` |
|
|
170
|
+
| `assets.remove_background` | `summer assets remove-background` |
|
|
171
|
+
| `assets.search`, `summer_assets_search` | `summer assets search` |
|
|
172
|
+
| `assets.slice_sheet` | `summer assets slice-sheet` |
|
|
173
|
+
| `assets.update` | `summer assets update` |
|
|
174
|
+
| `assets.upload_begin` | `summer assets upload-begin` |
|
|
175
|
+
| `assets.upload_complete` | `summer assets upload-complete` |
|
|
176
|
+
| `summer_import_asset_by_id` | `summer engine import-asset-by-id` |
|
|
177
|
+
| `summer_import_from_url` | `summer engine import-from-url` |
|
|
178
|
+
| `jobs.wait` | `summer jobs wait` |
|
|
179
|
+
| `makers.npc_voice` | `summer makers npc-voice` |
|
|
180
|
+
| `makers.trailer_forge` | `summer makers trailer-forge` |
|
|
181
|
+
| `summer_search` | `summer ops search "<what you want>"` |
|
|
182
|
+
<!-- /shell-commands -->
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
id: skill/asset-strategy
|
|
2
2
|
kind: skill
|
|
3
3
|
version: 1.0.3
|
|
4
|
-
summary: Route any 'I need a [thing]' asset request to the right
|
|
4
|
+
summary: "Route any 'I need a [thing]' asset request to the right skill: 2D, 3D, audio, video, VFX or animation."
|
|
5
5
|
use_when:
|
|
6
6
|
- planning asset creation, picking an asset pipeline, or routing an 'I need a [thing]' request to the right specialist skill
|
|
7
7
|
- '"I need a sword / a forest / a boss theme / an explosion" and it is unclear which pipeline (2D, 3D, audio, video, VFX, animation) fits'
|
|
@@ -20,6 +20,7 @@ compatibility:
|
|
|
20
20
|
engine: ">=4.6"
|
|
21
21
|
related:
|
|
22
22
|
skills:
|
|
23
|
+
- skill/summer-assets
|
|
23
24
|
- skill/character-portrait
|
|
24
25
|
- skill/concept-art
|
|
25
26
|
- skill/pixel-art
|