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: audio-direction
|
|
3
|
-
description: "Define the game's
|
|
3
|
+
description: "Define the game's sound (music style, SFX vocabulary, dynamic music) as .summer/audio-bible.md."
|
|
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 summer_get_project_context summer_get_scene_tree summer_inspect_node summer_add_node summer_project_setting
|
|
8
|
+
allowed-tools: Read Grep Glob Write Edit summer_get_project_context summer_get_scene_tree summer_inspect_node summer_add_node summer_project_setting summer_assets_generate_audio summer_call
|
|
9
9
|
paths: [".summer/**", "project.godot", "**/*.tscn", "audio/**"]
|
|
10
10
|
---
|
|
11
11
|
|
|
@@ -206,9 +206,9 @@ Ask:
|
|
|
206
206
|
If the user wants to start generating, propose 3-5 SFX seeds aligned with the vocabulary. These are starting points, not finals. Generate them with the `sound-effect` skill: the first sound effect in a chat starts with its question (three versions from three models, picked by ear in Summer Studio), and its prompt shape is the one that tested well.
|
|
207
207
|
|
|
208
208
|
```
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
209
|
+
assets.generate_audio({ capability: "sound_effects", text: "Foley one-shot: a fingertip taps a small wooden button, soft woody click, no tail, close-mic, dry, no reverb, no music, no voices.", durationSeconds: 0.5 })
|
|
210
|
+
assets.generate_audio({ capability: "sound_effects", text: "Foley one-shot: a small gold coin drops onto a wooden table, bright metallic ting with a short ring, close-mic, dry, no music, no voices.", durationSeconds: 0.5 })
|
|
211
|
+
assets.generate_audio({ capability: "sound_effects", text: "Foley one-shot: a fist hits a padded leather vest, low-mid thump, no tail, close-mic, dry, no reverb, no music, no voices.", durationSeconds: 0.5 })
|
|
212
212
|
```
|
|
213
213
|
|
|
214
214
|
`capability` is required; `sound_effects` reads from `text` (not `prompt`), and the length argument is `durationSeconds` (not `duration`) with a floor of 0.5 s (1 s for Stable Audio 3 SFX). Leave out `modelId` so the person's approved default model runs. Ask for the character you want inside the text and let the player only use the front of the clip — you cannot request 80 ms.
|
|
@@ -239,11 +239,11 @@ End with:
|
|
|
239
239
|
| Pure sine "ding" for pickup | Reads as cheap mobile game. Use a major-third interval with character. |
|
|
240
240
|
| Same footstep sample for all surfaces | Players hear footsteps constantly; material-aware steps carry much of the perceived audio quality. |
|
|
241
241
|
| No master ceiling / true peak | Audio clips on console builds without `-1 dBTP` ceiling. Always set it. |
|
|
242
|
-
| Assuming SetResourceProperty fails silently on inline sub_resources | It does not — inline targets work, and the structural failures (`node not found`, `property is not a resource`, `resource is null`) are explicit errors. What *is* silent on current engines is a bad value shape: a JSON object instead of an engine literal string, a misspelled `subProperty`, or a wrong-typed value returns `ok:true` yet no-ops or coerces destructively. Pass class names and literal strings, and confirm in the saved `.tres`/`.tscn`, never from `ok` alone. See
|
|
242
|
+
| Assuming SetResourceProperty fails silently on inline sub_resources | It does not — inline targets work, and the structural failures (`node not found`, `property is not a resource`, `resource is null`) are explicit errors. What *is* silent on current engines is a bad value shape: a JSON object instead of an engine literal string, a misspelled `subProperty`, or a wrong-typed value returns `ok:true` yet no-ops or coerces destructively. Pass class names and literal strings, and confirm in the saved `.tres`/`.tscn`, never from `ok` alone. See `summer_docs_read` id `reference/mcp-tools-reference`. |
|
|
243
243
|
|
|
244
244
|
## Collaborative protocol
|
|
245
245
|
|
|
246
|
-
This skill writes one bible (`.summer/audio-bible.md`), creates a bus layout (`audio/default_bus_layout.tres`), modifies `project.godot`, and may generate audio (metered). Always ask before writing or generating. See
|
|
246
|
+
This skill writes one bible (`.summer/audio-bible.md`), creates a bus layout (`audio/default_bus_layout.tres`), modifies `project.godot`, and may generate audio (metered). Always ask before writing or generating. See `summer_docs_read` id `reference/collaborative-protocol`.
|
|
247
247
|
|
|
248
248
|
## Want a working starter?
|
|
249
249
|
|
|
@@ -251,11 +251,27 @@ No template — this is a workflow that produces the bible the rest of the proje
|
|
|
251
251
|
|
|
252
252
|
## See also
|
|
253
253
|
|
|
254
|
-
-
|
|
255
|
-
-
|
|
254
|
+
- `summer_docs_read` id `reference/collaborative-protocol`
|
|
255
|
+
- `summer_docs_read` id `reference/godot-version` — Summer compatibility and
|
|
256
256
|
version-sensitive audio API notes
|
|
257
|
-
-
|
|
257
|
+
- `summer_docs_read` id `reference/mcp-tools-reference`
|
|
258
258
|
- `brainstorm-game` — produces the brief that anchors the bible
|
|
259
259
|
- `art-direction` — the visual counterpart; audio must rhyme with it
|
|
260
260
|
- `adaptive-music` — implements the dynamic music plan
|
|
261
261
|
- `sound-effect`, `music-track`, `ambient-bed`, `voice-line` — generate the audio the bible describes
|
|
262
|
+
|
|
263
|
+
<!-- shell-commands: generated from the operation catalog by npm run generate:registry; do not edit by hand -->
|
|
264
|
+
## From a shell
|
|
265
|
+
|
|
266
|
+
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.
|
|
267
|
+
|
|
268
|
+
| In this skill | Command |
|
|
269
|
+
|---|---|
|
|
270
|
+
| `summer_assets_generate_audio` | `summer assets generate-audio` |
|
|
271
|
+
| `summer_docs_read` | `summer docs read` |
|
|
272
|
+
| `summer_add_node` | `summer engine add-node` |
|
|
273
|
+
| `summer_get_project_context` | `summer engine get-project-context` |
|
|
274
|
+
| `summer_get_scene_tree` | `summer engine get-scene-tree` |
|
|
275
|
+
| `summer_inspect_node` | `summer engine inspect-node` |
|
|
276
|
+
| `summer_project_setting` | `summer engine project-setting` |
|
|
277
|
+
<!-- /shell-commands -->
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
id: skill/audio-direction
|
|
2
2
|
kind: skill
|
|
3
3
|
version: 1.0.7
|
|
4
|
-
summary: Define the game's
|
|
4
|
+
summary: "Define the game's sound (music style, SFX vocabulary, dynamic music) as .summer/audio-bible.md."
|
|
5
5
|
use_when:
|
|
6
6
|
- defining the sonic identity — music style, instruments, SFX vocabulary, dynamic music plan
|
|
7
7
|
- starting audio work with no audio bible, or soundtrack and SFX requests keep drifting in style
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: auto-fire-targeting
|
|
3
|
-
description: "
|
|
3
|
+
description: "Fix auto-fire targeting (survivors, ARPG, tower defense) with pending damage to stop overkill."
|
|
4
4
|
license: MIT
|
|
5
5
|
compatibility: [Cursor, Claude Code, Windsurf, Codex]
|
|
6
6
|
category: gameplay-mechanics
|
|
@@ -194,3 +194,17 @@ Do **not** reach for `SimulateInput` here. It is only reachable from the
|
|
|
194
194
|
in-editor chat bridge; an MCP or CLI caller gets
|
|
195
195
|
`{ok: false, failure_reason: "unsupported_transport"}` back. Drive input from
|
|
196
196
|
inside the probe with `press()` / `key()` instead.
|
|
197
|
+
|
|
198
|
+
<!-- shell-commands: generated from the operation catalog by npm run generate:registry; do not edit by hand -->
|
|
199
|
+
## From a shell
|
|
200
|
+
|
|
201
|
+
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.
|
|
202
|
+
|
|
203
|
+
| In this skill | Command |
|
|
204
|
+
|---|---|
|
|
205
|
+
| `summer_batch` | `summer engine batch` |
|
|
206
|
+
| `summer_game_probe` | `summer engine game-probe` |
|
|
207
|
+
| `summer_get_diagnostics` | `summer engine get-diagnostics` |
|
|
208
|
+
| `summer_inspect_node` | `summer engine inspect-node` |
|
|
209
|
+
| `summer_inspect_runtime_node` | `summer engine inspect-runtime-node` |
|
|
210
|
+
<!-- /shell-commands -->
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
id: skill/auto-fire-targeting
|
|
2
2
|
kind: skill
|
|
3
3
|
version: 1.0.0
|
|
4
|
-
summary:
|
|
4
|
+
summary: "Fix auto-fire targeting (survivors, ARPG, tower defense) with pending damage to stop overkill."
|
|
5
5
|
use_when:
|
|
6
6
|
- designing or fixing the targeting system for an auto-fire weapon (survivors-genre, top-down ARPG, tower-defense)
|
|
7
7
|
- bullet flight time longer than fire rate causes wasted bullets or overkill
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: bounded-engine-runs
|
|
3
|
-
description: "Run Summer headless or offscreen safely
|
|
3
|
+
description: "Run Summer headless or offscreen safely: time limits, one engine per project, import passes, crash checks."
|
|
4
4
|
license: MIT
|
|
5
5
|
compatibility: [Cursor, Claude Code, Windsurf, Codex]
|
|
6
6
|
category: workflow
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
id: skill/bounded-engine-runs
|
|
2
2
|
kind: skill
|
|
3
3
|
version: 1.0.0
|
|
4
|
-
summary: "Run Summer headless or offscreen safely
|
|
4
|
+
summary: "Run Summer headless or offscreen safely: time limits, one engine per project, import passes, crash checks."
|
|
5
5
|
use_when:
|
|
6
6
|
- running the engine from a shell or agent for tests, imports, captures or bots
|
|
7
7
|
- several agents or processes share one project
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: brainstorm-game
|
|
3
|
-
description: "Turn a vague idea into a
|
|
3
|
+
description: "Turn a vague game idea into a 1-page brief (genre, scope, core loop, mechanics) in .summer/GameSoul.md."
|
|
4
4
|
license: MIT
|
|
5
5
|
compatibility: [Cursor, Claude Code, Windsurf, Codex]
|
|
6
6
|
category: scene-and-project
|
|
@@ -206,3 +206,16 @@ No template — this is a workflow that produces the brief that drives template
|
|
|
206
206
|
- `art-direction` — turn the one-phrase look into a full bible
|
|
207
207
|
- `audio-direction` — sonic identity
|
|
208
208
|
- `make-game` — scaffold the project once the brief is locked
|
|
209
|
+
|
|
210
|
+
<!-- shell-commands: generated from the operation catalog by npm run generate:registry; do not edit by hand -->
|
|
211
|
+
## From a shell
|
|
212
|
+
|
|
213
|
+
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.
|
|
214
|
+
|
|
215
|
+
| In this skill | Command |
|
|
216
|
+
|---|---|
|
|
217
|
+
| `summer_get_project_context` | `summer engine get-project-context` |
|
|
218
|
+
| `summer_get_scene_tree` | `summer engine get-scene-tree` |
|
|
219
|
+
| `summer_read_file` | `summer engine read-file` |
|
|
220
|
+
| `summer_write_file` | `summer engine write-file` |
|
|
221
|
+
<!-- /shell-commands -->
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
id: skill/brainstorm-game
|
|
2
2
|
kind: skill
|
|
3
3
|
version: 1.0.3
|
|
4
|
-
summary: Turn a vague idea into a
|
|
4
|
+
summary: "Turn a vague game idea into a 1-page brief (genre, scope, core loop, mechanics) in .summer/GameSoul.md."
|
|
5
5
|
use_when:
|
|
6
6
|
- the user wants help deciding what game to make, scoping a new project, or turning a vague idea into a buildable plan
|
|
7
7
|
- the user has a genre, theme, or one-line pitch but no core loop, scope, or brief yet
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: brainstorming
|
|
3
|
-
description: "Explore user intent, requirements
|
|
3
|
+
description: "Explore user intent, requirements and design before any creative work: features, mechanics, behavior."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Brainstorming Ideas Into Designs
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
id: skill/brainstorming
|
|
2
2
|
kind: skill
|
|
3
3
|
version: 1.0.3
|
|
4
|
-
summary: "Explore user intent, requirements
|
|
4
|
+
summary: "Explore user intent, requirements and design before any creative work: features, mechanics, behavior."
|
|
5
5
|
use_when:
|
|
6
6
|
- starting creative work — designing a game, picking a mechanic, building features or components, modifying behavior
|
|
7
7
|
- a request is ambiguous about goals or constraints and work would otherwise start on guesses
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: browse-templates
|
|
3
|
-
description: "List
|
|
3
|
+
description: "List Summer Engine project templates, present the choices, and create a project from the chosen one."
|
|
4
4
|
license: MIT
|
|
5
5
|
compatibility: [Cursor, Claude Code, Codex, Windsurf, Gemini, OpenCode]
|
|
6
6
|
category: scene-and-project
|
|
@@ -103,3 +103,13 @@ Once the project is created and running, hand off cleanly. The next skill that f
|
|
|
103
103
|
- 2D platformer → `design-mechanic` for the platforming feel, then `design-level`.
|
|
104
104
|
|
|
105
105
|
Don't auto-fire the next skill — wait for the user to say what they want to change first.
|
|
106
|
+
|
|
107
|
+
<!-- shell-commands: generated from the operation catalog by npm run generate:registry; do not edit by hand -->
|
|
108
|
+
## From a shell
|
|
109
|
+
|
|
110
|
+
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.
|
|
111
|
+
|
|
112
|
+
| In this skill | Command |
|
|
113
|
+
|---|---|
|
|
114
|
+
| `summer_get_project_context` | `summer engine get-project-context` |
|
|
115
|
+
<!-- /shell-commands -->
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
id: skill/browse-templates
|
|
2
2
|
kind: skill
|
|
3
3
|
version: 1.0.5
|
|
4
|
-
summary: List
|
|
4
|
+
summary: "List Summer Engine project templates, present the choices, and create a project from the chosen one."
|
|
5
5
|
use_when:
|
|
6
6
|
- the user wants to see available Summer Engine project templates, start from an existing template, or asks what templates exist
|
|
7
7
|
- picking a starting point and unsure which starter templates already exist
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: camera-rigs
|
|
3
|
-
description: "Camera rigs
|
|
3
|
+
description: "Camera rigs: Camera2D follow with limits, first-person head, SpringArm3D third-person, top-down, FOV."
|
|
4
4
|
license: MIT
|
|
5
5
|
compatibility: [Cursor, Claude Code, Codex, Windsurf, Gemini, OpenCode]
|
|
6
6
|
category: scene-and-project
|
|
@@ -55,7 +55,7 @@ Same as above minus the platformer edge-lock urgency. Zoom out to show the field
|
|
|
55
55
|
## 3D first-person camera
|
|
56
56
|
|
|
57
57
|
Camera is a child of a `Head` node on the player. Body yaws, Head pitches. See
|
|
58
|
-
the `character-movement` skill (its
|
|
58
|
+
the `character-movement` skill (its 3D movement reference: `summer_docs_read` id `skill/character-movement/references/movement-3d.md`) or
|
|
59
59
|
`fps-controller` for the look script. FOV 70-75, near 0.05.
|
|
60
60
|
|
|
61
61
|
```
|
|
@@ -126,3 +126,23 @@ camera, not the game's.
|
|
|
126
126
|
| Shows past level edge | No 2D limits | Set `limit_*` to level bounds |
|
|
127
127
|
| Wrong facing (3D) | rotation.y off | y: 0 = forward, 180 = backward |
|
|
128
128
|
| Everything tiny/huge (ortho) | `size` wrong | Tune `size`, not `position.y` |
|
|
129
|
+
|
|
130
|
+
<!-- shell-commands: generated from the operation catalog by npm run generate:registry; do not edit by hand -->
|
|
131
|
+
## From a shell
|
|
132
|
+
|
|
133
|
+
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.
|
|
134
|
+
|
|
135
|
+
| In this skill | Command |
|
|
136
|
+
|---|---|
|
|
137
|
+
| `summer_docs_read` | `summer docs read` |
|
|
138
|
+
| `summer_add_node` | `summer engine add-node` |
|
|
139
|
+
| `summer_batch` | `summer engine batch` |
|
|
140
|
+
| `summer_get_diagnostics` | `summer engine get-diagnostics` |
|
|
141
|
+
| `summer_get_scene_tree` | `summer engine get-scene-tree` |
|
|
142
|
+
| `summer_inspect_node` | `summer engine inspect-node` |
|
|
143
|
+
| `summer_play` | `summer engine play` |
|
|
144
|
+
| `summer_save_scene` | `summer engine save-scene` |
|
|
145
|
+
| `summer_screenshot` | `summer engine screenshot` |
|
|
146
|
+
| `summer_set_prop` | `summer engine set-prop` |
|
|
147
|
+
| `summer_stop` | `summer engine stop` |
|
|
148
|
+
<!-- /shell-commands -->
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
id: skill/camera-rigs
|
|
2
2
|
kind: skill
|
|
3
3
|
version: 1.0.0
|
|
4
|
-
summary: "Camera rigs
|
|
4
|
+
summary: "Camera rigs: Camera2D follow with limits, first-person head, SpringArm3D third-person, top-down, FOV."
|
|
5
5
|
use_when:
|
|
6
6
|
- black screen on play, or the camera shows past the level edge
|
|
7
7
|
- jerky camera follow, wrong FOV, or the third-person camera clips into walls
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: character-animation-wiring
|
|
3
|
-
description: "Wire a rigged
|
|
3
|
+
description: "Wire a rigged character end to end: real clips and bones, locomotion states, method tracks, root motion."
|
|
4
4
|
license: MIT
|
|
5
5
|
compatibility: [Cursor, Claude Code, Windsurf, Codex]
|
|
6
6
|
category: animation
|
|
@@ -11,7 +11,7 @@ paths: ["**/*.gd", "**/*.tscn", "**/*.glb"]
|
|
|
11
11
|
|
|
12
12
|
# Character Animation Wiring — Rigged GLB to Living Character
|
|
13
13
|
|
|
14
|
-
The game-critical path: a rigged, animated character lands in the scene — from `
|
|
14
|
+
The game-critical path: a rigged, animated character lands in the scene — from `assets.generate_3d({ ..., rig: true })` + `assets.generate_motion`, or an imported GLB — and nothing moves yet. This skill wires it end to end: inspect what actually arrived, build locomotion, fire gameplay events off animation frames, add poses and head tracking, key the face, and handle root motion. Then **prove it in a playtest** — a wired tree that was never played is a claim, not a result.
|
|
15
15
|
|
|
16
16
|
Two lanes throughout:
|
|
17
17
|
|
|
@@ -85,7 +85,7 @@ Read the reports. Every later step quotes these exact strings. If the clip list
|
|
|
85
85
|
```gdscript
|
|
86
86
|
func run(ctx):
|
|
87
87
|
var character = ctx.find("Goblin")
|
|
88
|
-
var tree
|
|
88
|
+
var tree = ctx.anim_state_machine(character, {
|
|
89
89
|
"states": {"idle": "idle", "walk": "walk", "run": "run"},
|
|
90
90
|
"transitions": [
|
|
91
91
|
["idle", "walk", {"blend_s": 0.2}],
|
|
@@ -150,7 +150,7 @@ func run(ctx):
|
|
|
150
150
|
Head tracking — one call creates the owned `LookAtModifier3D` under the skeleton:
|
|
151
151
|
|
|
152
152
|
```gdscript
|
|
153
|
-
var mod
|
|
153
|
+
var mod = ctx.look_at_modifier(skel, ctx.find("Player"), {"bone_name": "Head"})
|
|
154
154
|
```
|
|
155
155
|
|
|
156
156
|
Unknown props land in `prop_warnings` — read them. Angle limits, influence fade-out by distance, and spine-chain distribution are the difference between alive and possessed: tune per `procedural-animation` (A1/A2).
|
|
@@ -247,3 +247,27 @@ Method tracks raw: `anim.add_track(Animation.TYPE_METHOD)` + `track_set_path(idx
|
|
|
247
247
|
|
|
248
248
|
- `scene-scripting` — the ctx stdlib contract, owner rules, budgets, undo/rollback.
|
|
249
249
|
- `verifying-scenes` — snapshot/diff/screenshot/runtime-read discipline this skill leans on.
|
|
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
|
+
| `assets.generate_3d` | `summer assets generate-3d` |
|
|
259
|
+
| `assets.generate_motion` | `summer assets generate-motion` |
|
|
260
|
+
| `summer_api_docs` | `summer docs engine-api` |
|
|
261
|
+
| `summer_get_runtime_tree` | `summer engine get-runtime-tree` |
|
|
262
|
+
| `summer_get_scene_tree` | `summer engine get-scene-tree` |
|
|
263
|
+
| `summer_get_script_errors` | `summer engine get-script-errors` |
|
|
264
|
+
| `summer_inspect_node` | `summer engine inspect-node` |
|
|
265
|
+
| `summer_inspect_runtime_node` | `summer engine inspect-runtime-node` |
|
|
266
|
+
| `summer_play` | `summer engine play` |
|
|
267
|
+
| `summer_run_script` | `summer engine run-script` |
|
|
268
|
+
| `summer_save_scene` | `summer engine save-scene` |
|
|
269
|
+
| `summer_screenshot` | `summer engine screenshot` |
|
|
270
|
+
| `summer_snapshot_diff` | `summer engine snapshot-diff` |
|
|
271
|
+
| `summer_stop` | `summer engine stop` |
|
|
272
|
+
| `summer_world_snapshot` | `summer engine world-snapshot` |
|
|
273
|
+
<!-- /shell-commands -->
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
id: skill/character-animation-wiring
|
|
2
2
|
kind: skill
|
|
3
3
|
version: 1.0.1
|
|
4
|
-
summary: Wire a rigged
|
|
4
|
+
summary: "Wire a rigged character end to end: real clips and bones, locomotion states, method tracks, root motion."
|
|
5
5
|
use_when:
|
|
6
6
|
- a rigged GLB or Meshy rig with generated clips is in the scene and needs idle/walk/run wiring with blend times
|
|
7
7
|
- footstep or attack-frame events, head tracking, still poses, blend-shape facial keys, or root motion must be hooked up
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: character-model
|
|
3
|
-
description: "Generate a rigged humanoid
|
|
3
|
+
description: "Generate a rigged humanoid (player, NPC, enemy, boss) from a T-pose reference, previewed before rigging."
|
|
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_image summer_assets_generate_3d summer_import_from_url summer_add_node summer_set_prop summer_set_resource_property summer_inspect_node summer_inspect_resource summer_get_scene_tree summer_save_scene summer_jobs_wait summer_assets_generate_motion summer_call
|
|
9
9
|
paths: ["assets/characters/**", "assets/models/**", "**/*.tscn", "**/*.gd"]
|
|
10
10
|
---
|
|
11
11
|
|
|
@@ -16,16 +16,18 @@ This is the canonical auto-rig pipeline. It produces a humanoid `.glb` with a sk
|
|
|
16
16
|
The whole flow:
|
|
17
17
|
|
|
18
18
|
```
|
|
19
|
-
1. T-pose reference image →
|
|
20
|
-
2. Un-rigged 3D mesh →
|
|
19
|
+
1. T-pose reference image → assets.generate_image (~10s)
|
|
20
|
+
2. Un-rigged 3D mesh → assets.generate_3d(image-to-3d) → a job (~60s)
|
|
21
21
|
3. ── USER REVIEW GATE ──
|
|
22
|
-
4. Rigged .glb →
|
|
22
|
+
4. Rigged .glb → assets.generate_3d(image-to-3d, rig) → a job (~90s)
|
|
23
23
|
5. Import → editor RESTART → wire as CharacterBody3D / Node3D
|
|
24
24
|
6. Hand off to generate-motion for clips
|
|
25
25
|
```
|
|
26
26
|
|
|
27
27
|
The animation skill (`generate-motion`) requires a rigged humanoid; a static `.glb` won't drive motion.
|
|
28
28
|
|
|
29
|
+
`assets.generate_3d` always answers at once with a job (`{ status: "running", job: { id } }`); `jobs.wait({ jobId, timeoutSeconds: 50 })` follows it, called again until `finished` is true. The finished job's `result` holds the asset ids. Both passes spend the person's credits: `dryRun: true` on any call returns the estimate (`credits`, `balance`, `enough`) and changes nothing.
|
|
30
|
+
|
|
29
31
|
## When to use
|
|
30
32
|
|
|
31
33
|
- "Make a knight character for the player to control."
|
|
@@ -46,11 +48,11 @@ The animation skill (`generate-motion`) requires a rigged humanoid; a static `.g
|
|
|
46
48
|
|
|
47
49
|
| Role | Tris | Pass via |
|
|
48
50
|
|---|---|---|
|
|
49
|
-
| Hero character (player, close camera) | 8k–15k | `
|
|
50
|
-
| Grunt enemy (mid-range, multiple onscreen) | 3k–6k | `
|
|
51
|
-
| Crowd / background NPC (LOD-able) | 1k–2k | `
|
|
52
|
-
| Mobile-game character | 1k–3k | `
|
|
53
|
-
| Cinematic hero (no realtime constraint) | 20k–40k | `
|
|
51
|
+
| Hero character (player, close camera) | 8k–15k | `targetPolycount: 12000` |
|
|
52
|
+
| Grunt enemy (mid-range, multiple onscreen) | 3k–6k | `targetPolycount: 5000` |
|
|
53
|
+
| Crowd / background NPC (LOD-able) | 1k–2k | `targetPolycount: 1500` |
|
|
54
|
+
| Mobile-game character | 1k–3k | `targetPolycount: 2000` |
|
|
55
|
+
| Cinematic hero (no realtime constraint) | 20k–40k | `targetPolycount: 30000` |
|
|
54
56
|
|
|
55
57
|
Pass at the **mesh-generation step** (step 2). The rig pass preserves the topology; you can't reduce polycount after rigging without breaking weights.
|
|
56
58
|
|
|
@@ -61,10 +63,11 @@ Pass at the **mesh-generation step** (step 2). The rig pass preserves the topolo
|
|
|
61
63
|
The rig pass requires a **front-facing T-pose** with arms out and legs slightly apart. If the reference is in an action pose, the rig will bend wrong and locomotion clips will look broken (knees inverted, elbows snapped — common Meshy failure mode).
|
|
62
64
|
|
|
63
65
|
```
|
|
64
|
-
|
|
65
|
-
prompt
|
|
66
|
-
model
|
|
67
|
-
|
|
66
|
+
assets.generate_image({
|
|
67
|
+
prompt: "A fantasy knight in full plate armor, red cape, T-pose, arms straight out horizontal, legs slightly apart, front-facing, neutral expression. Game character asset, stylized, clean white background, soft studio lighting, full body in frame, ready for 3D mesh generation.",
|
|
68
|
+
model: "nano-banana-2",
|
|
69
|
+
aspectRatio: "3:4"
|
|
70
|
+
})
|
|
68
71
|
```
|
|
69
72
|
|
|
70
73
|
The phrase `T-pose, arms straight out horizontal, legs slightly apart, front-facing` is load-bearing — drop any of those and the model will drift toward A-pose or a hero stance.
|
|
@@ -72,7 +75,7 @@ The phrase `T-pose, arms straight out horizontal, legs slightly apart, front-fac
|
|
|
72
75
|
If the user already has a concept image in an action pose, re-pose it to T-pose via img2img without re-rolling the design:
|
|
73
76
|
|
|
74
77
|
```
|
|
75
|
-
|
|
78
|
+
assets.generate_image({
|
|
76
79
|
referenceImageUrl: "<existing concept image>",
|
|
77
80
|
prompt: "<character> in T-pose, arms extended horizontally, neutral facing camera, white background, clean lighting"
|
|
78
81
|
})
|
|
@@ -85,20 +88,20 @@ Show the image to the user:
|
|
|
85
88
|
### 2. Generate the un-rigged 3D mesh
|
|
86
89
|
|
|
87
90
|
```
|
|
88
|
-
|
|
89
|
-
kind
|
|
90
|
-
imageUrl
|
|
91
|
-
model
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
)
|
|
91
|
+
assets.generate_3d({
|
|
92
|
+
kind: "image-to-3d",
|
|
93
|
+
imageUrl: "<image url from step 1>",
|
|
94
|
+
model: "hunyuan",
|
|
95
|
+
targetPolycount: 12000
|
|
96
|
+
})
|
|
97
|
+
jobs.wait({ jobId: "<job.id>", timeoutSeconds: 50 }) // again until finished
|
|
95
98
|
```
|
|
96
99
|
|
|
97
|
-
|
|
100
|
+
The finished job's `result` has `assetId` and `fileUrl` — an un-rigged static `.glb`.
|
|
98
101
|
Use the asset ID as the stable handle. Import it for preview only:
|
|
99
102
|
|
|
100
103
|
```
|
|
101
|
-
|
|
104
|
+
assets.get({ assetId: "<assetId>" })
|
|
102
105
|
summer_import_asset_by_id(
|
|
103
106
|
assetId="<assetId>",
|
|
104
107
|
path="res://assets/characters/knight_unrigged.glb"
|
|
@@ -120,25 +123,25 @@ If the user wants changes, loop back to step 1 or 2. Do NOT silently run the rig
|
|
|
120
123
|
### 4. Run the rig pass
|
|
121
124
|
|
|
122
125
|
```
|
|
123
|
-
|
|
126
|
+
assets.generate_3d({
|
|
124
127
|
kind: "image-to-3d",
|
|
125
128
|
imageUrl: "<image url from step 1>",
|
|
126
129
|
rig: true,
|
|
127
|
-
|
|
130
|
+
targetPolycount: 12000
|
|
128
131
|
})
|
|
132
|
+
jobs.wait({ jobId: "<job.id>", timeoutSeconds: 50 }) // again until finished
|
|
129
133
|
```
|
|
130
134
|
|
|
131
|
-
`rig`
|
|
135
|
+
`rig` and `targetPolycount` are plain fields of `assets.generate_3d` (there is no `options` object and no `polyTarget`). Related fields worth knowing here: `riggingHeightMeters` for character height, and `animationNames` / `actionIds` to have the shared animated-character pipeline produce clips in the same job instead of a separate `assets.generate_motion` pass.
|
|
132
136
|
|
|
133
|
-
|
|
134
|
-
If you ran with `wait: false`, poll via `summer_check_job(jobId)`. The
|
|
137
|
+
The finished job's `result` includes `assetId`, `fileUrl`, and `rigAssetId`. The
|
|
135
138
|
`rigAssetId` is the handle `generate-motion` needs — store it.
|
|
136
139
|
Resolve it before import so the agent has the viewer/download metadata:
|
|
137
140
|
|
|
138
141
|
Import the rigged version, replacing the un-rigged file:
|
|
139
142
|
|
|
140
143
|
```
|
|
141
|
-
|
|
144
|
+
assets.get({ assetId: "<rigAssetId>" })
|
|
142
145
|
summer_import_asset_by_id(
|
|
143
146
|
assetId="<rigAssetId>",
|
|
144
147
|
path="res://assets/characters/knight.glb"
|
|
@@ -162,27 +165,28 @@ No programmatic workaround is known. Tell the user, wait, then continue.
|
|
|
162
165
|
| Pure-visual character (background extra, dialogue head) | `Node3D` | Same as above |
|
|
163
166
|
| Ragdoll-on-death enemy | `CharacterBody3D` while alive, swap to `RigidBody3D` skeleton on death | Two-mode rig; see `procedural-animation` |
|
|
164
167
|
|
|
165
|
-
|
|
168
|
+
Three things the call shapes below encode:
|
|
166
169
|
|
|
167
|
-
- **Every scene
|
|
168
|
-
- **
|
|
169
|
-
-
|
|
170
|
-
- **A `.glb` is instantiated, not assigned.** There is no `scene` property on `Node3D`, and an imported `.glb` is a scene rather than a `Mesh` — on the shipped 4.6.1 binary `ResourceLoader.get_recognized_extensions_for_type("Mesh")` returns `["tres", "mesh", "res"]`, with no `glb`. Use `summer_instantiate_scene`.
|
|
170
|
+
- **Every scene tool, `summer_run_script` included, takes an explicit `scenePath`**, and the scene need not be the active editor tab.
|
|
171
|
+
- **A character is several nodes: build it in one `summer_run_script`**, not a chain of single calls.
|
|
172
|
+
- **A `.glb` is instantiated, not assigned.** There is no `scene` property on `Node3D`, and an imported `.glb` is a scene rather than a `Mesh` — on the shipped 4.6.1 binary `ResourceLoader.get_recognized_extensions_for_type("Mesh")` returns `["tres", "mesh", "res"]`, with no `glb`. Use `ctx.instance_scene` in a script, or `summer_instantiate_scene` for one model.
|
|
171
173
|
|
|
172
174
|
**CharacterBody3D wiring (player / enemy):**
|
|
173
175
|
|
|
174
176
|
```
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
177
|
+
summer_run_script(scenePath="res://main.tscn", source="""
|
|
178
|
+
func run(ctx):
|
|
179
|
+
var knight = ctx.add_node("CharacterBody3D", "Knight", ctx.find("World"), {"position": Vector3(0, 0, 0)})
|
|
180
|
+
ctx.instance_scene("res://assets/characters/knight.glb", knight, "Mesh")
|
|
181
|
+
var capsule := CapsuleShape3D.new()
|
|
182
|
+
capsule.height = 1.7
|
|
183
|
+
capsule.radius = 0.4
|
|
184
|
+
ctx.add_node("CollisionShape3D", "Collider", knight, {"shape": capsule})
|
|
185
|
+
ctx.save_scene()
|
|
186
|
+
""")
|
|
183
187
|
```
|
|
184
188
|
|
|
185
|
-
|
|
189
|
+
Build the shape as a real resource and size it before you assign it. Later, one size change on that shape is one `summer_set_resource_property` (`nodePath`, `resourceProperty="shape"`, `subProperty`, `value`, plus `scenePath`).
|
|
186
190
|
|
|
187
191
|
**Node3D wiring (cinematic NPC):**
|
|
188
192
|
|
|
@@ -198,8 +202,8 @@ The imported `.glb` includes its own `Skeleton3D` and `AnimationPlayer` (empty l
|
|
|
198
202
|
> Knight is wired at `./World/Knight` with an auto-rigged skeleton. `rigAssetId` saved.
|
|
199
203
|
>
|
|
200
204
|
> Next: `generate-motion` to add idle / walk / run / attack
|
|
201
|
-
> clips. Example call: `
|
|
202
|
-
> backend: "meshy-library",
|
|
205
|
+
> clips. Example call: `assets.generate_motion({ rigAssetId: "<saved id>",
|
|
206
|
+
> backend: "meshy-library", motionNames: ["walk"] })`. For custom actions, use
|
|
203
207
|
> `text-to-motion` (`backend: "text-to-motion"`).
|
|
204
208
|
|
|
205
209
|
## Anti-patterns
|
|
@@ -220,6 +224,10 @@ The imported `.glb` includes its own `Skeleton3D` and `AnimationPlayer` (empty l
|
|
|
220
224
|
- **First-person hands-only character.** Generate just hands + forearms in T-pose; rig pass still works. See `fps-controller` for first-person wiring.
|
|
221
225
|
- **Stylized non-human (goblin, orc, halfling).** Works fine as long as the silhouette is bipedal with two arms, two legs, one head. Quadrupeds and centaurs do not.
|
|
222
226
|
|
|
227
|
+
## Without Summer Engine
|
|
228
|
+
|
|
229
|
+
In a session without Summer Engine tools (the assets profile; the `summer-assets` skill has the whole loop), do steps 1-4, including the review gate, and stop when the rig pass finishes. Skip steps 5-6 (editor restart, scene wiring). Save the rigged GLB (`rigAssetId`; the unrigged mesh is `assetId`) where the person asked with `out` on `jobs.wait` or `assets.get` (the `summer-assets` skill says how), and tell them the path. Step 7 still applies: `generate-motion` runs without the engine.
|
|
230
|
+
|
|
223
231
|
## Fallback (no MCP)
|
|
224
232
|
|
|
225
233
|
1. Generate the T-pose reference in the Summer dashboard.
|
|
@@ -248,4 +256,32 @@ After the rigged character is wired:
|
|
|
248
256
|
- `asset-strategy` — meta-router; this skill is the canonical drill-down of its "Image-to-3D for characters" path.
|
|
249
257
|
- `prop-model` — for non-character props.
|
|
250
258
|
- `scene-composition` — for the CharacterBody3D + Mesh + Collider parent pattern.
|
|
251
|
-
-
|
|
259
|
+
- `summer_docs_read` id `reference/mcp-tools-reference` — how to call `assets.generate_3d`, `assets.generate_image` and `assets.generate_motion`; `summer_search` returns each one's exact input.
|
|
260
|
+
|
|
261
|
+
<!-- shell-commands: generated from the operation catalog by npm run generate:registry; do not edit by hand -->
|
|
262
|
+
## From a shell
|
|
263
|
+
|
|
264
|
+
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.
|
|
265
|
+
|
|
266
|
+
| In this skill | Command |
|
|
267
|
+
|---|---|
|
|
268
|
+
| `assets.generate_3d`, `summer_assets_generate_3d` | `summer assets generate-3d` |
|
|
269
|
+
| `assets.generate_image`, `summer_assets_generate_image` | `summer assets generate-image` |
|
|
270
|
+
| `assets.generate_motion`, `summer_assets_generate_motion` | `summer assets generate-motion` |
|
|
271
|
+
| `assets.get`, `summer_assets_get` | `summer assets get` |
|
|
272
|
+
| `summer_assets_search` | `summer assets search` |
|
|
273
|
+
| `summer_docs_read` | `summer docs read` |
|
|
274
|
+
| `summer_add_node` | `summer engine add-node` |
|
|
275
|
+
| `summer_get_scene_tree` | `summer engine get-scene-tree` |
|
|
276
|
+
| `summer_import_asset_by_id` | `summer engine import-asset-by-id` |
|
|
277
|
+
| `summer_import_from_url` | `summer engine import-from-url` |
|
|
278
|
+
| `summer_inspect_node` | `summer engine inspect-node` |
|
|
279
|
+
| `summer_inspect_resource` | `summer engine inspect-resource` |
|
|
280
|
+
| `summer_instantiate_scene` | `summer engine instantiate-scene` |
|
|
281
|
+
| `summer_run_script` | `summer engine run-script` |
|
|
282
|
+
| `summer_save_scene` | `summer engine save-scene` |
|
|
283
|
+
| `summer_set_prop` | `summer engine set-prop` |
|
|
284
|
+
| `summer_set_resource_property` | `summer engine set-resource-property` |
|
|
285
|
+
| `jobs.wait`, `summer_jobs_wait` | `summer jobs wait` |
|
|
286
|
+
| `summer_search` | `summer ops search "<what you want>"` |
|
|
287
|
+
<!-- /shell-commands -->
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
id: skill/character-model
|
|
2
2
|
kind: skill
|
|
3
3
|
version: 1.0.2
|
|
4
|
-
summary: Generate a rigged humanoid
|
|
4
|
+
summary: "Generate a rigged humanoid (player, NPC, enemy, boss) from a T-pose reference, previewed before rigging."
|
|
5
5
|
use_when:
|
|
6
6
|
- generating a humanoid character ready for animation — player avatar, NPC, enemy, boss, companion
|
|
7
7
|
- the user asks for a rigged humanoid or a model with a skeleton
|