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,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: tune-performance
|
|
3
|
-
description: "Profile a slow game
|
|
3
|
+
description: "Profile a slow game, find rendering, physics or script hotspots, and propose fixes with expected gains."
|
|
4
4
|
license: MIT
|
|
5
5
|
compatibility: [Cursor, Claude Code, Windsurf, Codex]
|
|
6
6
|
category: performance
|
|
@@ -221,7 +221,7 @@ Compare: was the metric movement at least 50% of what was promised? If yes, ship
|
|
|
221
221
|
|
|
222
222
|
## Collaborative protocol
|
|
223
223
|
|
|
224
|
-
This skill makes scene/resource/code changes. Always ask before each fix is applied. See
|
|
224
|
+
This skill makes scene/resource/code changes. Always ask before each fix is applied. See `summer_docs_read` id `reference/collaborative-protocol`.
|
|
225
225
|
|
|
226
226
|
## Want a working starter?
|
|
227
227
|
|
|
@@ -229,10 +229,36 @@ No template — this is a workflow. Performance tuning is project-specific by de
|
|
|
229
229
|
|
|
230
230
|
## See also
|
|
231
231
|
|
|
232
|
-
-
|
|
233
|
-
-
|
|
234
|
-
-
|
|
235
|
-
-
|
|
232
|
+
- `summer_docs_read` id `reference/mcp-tools-reference` — full MCP tool list
|
|
233
|
+
- `summer_docs_read` id `reference/godot-version` — renderer API churn notes (Compositor, RenderSceneBuffers)
|
|
234
|
+
- `summer_docs_read` id `reference/collaborative-protocol` — "May I write" pattern
|
|
235
|
+
- `summer_docs_read` id `reference/gd-style` — GDScript conventions (avoid bare types, use `:=`)
|
|
236
236
|
- `debug` — bug triage (related but different)
|
|
237
237
|
- `diagnosing-perf-regressions` — when it *got* slow rather than always was
|
|
238
238
|
- `3d-lighting` — light setup and bake decisions
|
|
239
|
+
|
|
240
|
+
<!-- shell-commands: generated from the operation catalog by npm run generate:registry; do not edit by hand -->
|
|
241
|
+
## From a shell
|
|
242
|
+
|
|
243
|
+
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.
|
|
244
|
+
|
|
245
|
+
| In this skill | Command |
|
|
246
|
+
|---|---|
|
|
247
|
+
| `summer_docs_read` | `summer docs read` |
|
|
248
|
+
| `summer_add_node` | `summer engine add-node` |
|
|
249
|
+
| `summer_batch` | `summer engine batch` |
|
|
250
|
+
| `summer_clear_console` | `summer engine clear-console` |
|
|
251
|
+
| `summer_get_console` | `summer engine get-console` |
|
|
252
|
+
| `summer_get_diagnostics` | `summer engine get-diagnostics` |
|
|
253
|
+
| `summer_get_scene_tree` | `summer engine get-scene-tree` |
|
|
254
|
+
| `summer_inspect_node` | `summer engine inspect-node` |
|
|
255
|
+
| `summer_inspect_resource` | `summer engine inspect-resource` |
|
|
256
|
+
| `summer_is_running` | `summer engine is-running` |
|
|
257
|
+
| `summer_play` | `summer engine play` |
|
|
258
|
+
| `summer_project_setting` | `summer engine project-setting` |
|
|
259
|
+
| `summer_run_script` | `summer engine run-script` |
|
|
260
|
+
| `summer_save_scene` | `summer engine save-scene` |
|
|
261
|
+
| `summer_screenshot` | `summer engine screenshot` |
|
|
262
|
+
| `summer_set_prop` | `summer engine set-prop` |
|
|
263
|
+
| `summer_stop` | `summer engine stop` |
|
|
264
|
+
<!-- /shell-commands -->
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
id: skill/tune-performance
|
|
2
2
|
kind: skill
|
|
3
3
|
version: 1.0.3
|
|
4
|
-
summary: Profile a slow game
|
|
4
|
+
summary: "Profile a slow game, find rendering, physics or script hotspots, and propose fixes with expected gains."
|
|
5
5
|
use_when:
|
|
6
6
|
- the game is slow, drops framerate, stutters, takes forever to start, or runs poorly on specific hardware
|
|
7
7
|
- fps drops or stutter when many units, projectiles, or particles spawn at once and the hotspot is unknown
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ui-basics
|
|
3
|
-
description: "Build
|
|
3
|
+
description: "Build UI: HUDs, menus, health bars, dialogue boxes, Control trees, anchors, containers and themes."
|
|
4
4
|
license: MIT
|
|
5
5
|
compatibility: [Cursor, Claude Code, Windsurf, Codex]
|
|
6
6
|
category: ui-and-ux
|
|
7
7
|
user-invocable: false
|
|
8
|
-
allowed-tools: Read Grep summer_add_node summer_set_prop summer_connect_signal summer_save_scene
|
|
8
|
+
allowed-tools: Read Grep summer_run_script summer_add_node summer_set_prop summer_connect_signal summer_save_scene
|
|
9
9
|
paths: ["**/*.tscn", "**/*.gd"]
|
|
10
10
|
---
|
|
11
11
|
|
|
@@ -40,42 +40,47 @@ Control or CanvasLayer (root)
|
|
|
40
40
|
|
|
41
41
|
## Basic Menu
|
|
42
42
|
|
|
43
|
+
A menu is a dozen nodes: build it in one `summer_run_script` call (one undo
|
|
44
|
+
step), never as a chain of `summer_add_node` / `summer_set_prop` calls.
|
|
45
|
+
|
|
43
46
|
```
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
summer_set_prop(path="./MainMenu/Margin/VBox/QuitButton", key="text", value="Quit")
|
|
47
|
+
summer_run_script(scenePath="res://main.tscn", source="""
|
|
48
|
+
func run(ctx):
|
|
49
|
+
var menu = ctx.add_node("Control", "MainMenu")
|
|
50
|
+
menu.set_anchors_and_offsets_preset(Control.PRESET_FULL_RECT)
|
|
51
|
+
var margin = ctx.add_node("MarginContainer", "Margin", menu)
|
|
52
|
+
margin.set_anchors_and_offsets_preset(Control.PRESET_FULL_RECT)
|
|
53
|
+
for side in ["margin_left", "margin_right", "margin_top", "margin_bottom"]:
|
|
54
|
+
margin.add_theme_constant_override(side, 50)
|
|
55
|
+
var column = ctx.add_node("VBoxContainer", "VBox", margin)
|
|
56
|
+
ctx.add_node("Label", "Title", column, {"text": "My Game"})
|
|
57
|
+
ctx.add_node("Button", "StartButton", column, {"text": "Start Game"})
|
|
58
|
+
ctx.add_node("Button", "QuitButton", column, {"text": "Quit"})
|
|
59
|
+
ctx.save_scene()
|
|
60
|
+
""")
|
|
59
61
|
```
|
|
60
62
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
Some constants use `add_theme_constant_override`.
|
|
63
|
+
Container margins are theme constants, not plain properties: set them with
|
|
64
|
+
`add_theme_constant_override` as above. `set_anchors_and_offsets_preset` pins
|
|
65
|
+
a Control the way the editor's layout menu does.
|
|
65
66
|
|
|
66
67
|
## HUD (Health Bar)
|
|
67
68
|
|
|
68
69
|
```
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
70
|
+
summer_run_script(scenePath="res://main.tscn", source="""
|
|
71
|
+
func run(ctx):
|
|
72
|
+
var hud = ctx.add_node("CanvasLayer", "HUD")
|
|
73
|
+
var top_left = ctx.add_node("MarginContainer", "TopLeft", hud)
|
|
74
|
+
top_left.set_anchors_and_offsets_preset(Control.PRESET_TOP_LEFT)
|
|
75
|
+
var row = ctx.add_node("HBoxContainer", "HealthContainer", top_left)
|
|
76
|
+
ctx.add_node("Label", "HealthLabel", row, {"text": "Health:"})
|
|
77
|
+
ctx.add_node("ProgressBar", "HealthBar", row, {
|
|
78
|
+
"max_value": 100.0,
|
|
79
|
+
"value": 100.0,
|
|
80
|
+
"custom_minimum_size": Vector2(200, 20), # a container sets size; ask for a minimum
|
|
81
|
+
})
|
|
82
|
+
ctx.save_scene()
|
|
83
|
+
""")
|
|
79
84
|
```
|
|
80
85
|
|
|
81
86
|
ProgressBar uses `value` and `max_value` for the fill. Update `value` from a script when health changes.
|
|
@@ -92,7 +97,7 @@ Common preset values in the current Summer Engine UI API:
|
|
|
92
97
|
| Bottom Right | 3 | Anchor to bottom-right |
|
|
93
98
|
| Full Rect | 15 | Stretch to fill parent |
|
|
94
99
|
|
|
95
|
-
Set via `summer_set_prop(path, key="anchors_preset", value="15")`.
|
|
100
|
+
Set via `summer_set_prop(scenePath, path, key="anchors_preset", value="15")`.
|
|
96
101
|
|
|
97
102
|
## Connecting Buttons
|
|
98
103
|
|
|
@@ -102,10 +107,10 @@ Wire the `pressed` signal to a handler:
|
|
|
102
107
|
summer_connect_signal(scenePath="res://main.tscn", emitter="./MainMenu/Margin/VBox/StartButton", signal="pressed", receiver="./MainMenu", method="_on_start_pressed")
|
|
103
108
|
```
|
|
104
109
|
|
|
105
|
-
`scenePath` is required on every scene
|
|
106
|
-
(`
|
|
107
|
-
`summer_save_scene`)
|
|
108
|
-
|
|
110
|
+
`scenePath` is required on every scene tool in this skill
|
|
111
|
+
(`summer_run_script`, `summer_set_prop`, `summer_connect_signal`,
|
|
112
|
+
`summer_save_scene`); the examples use `res://main.tscn`. A call without it is
|
|
113
|
+
rejected before it reaches the engine.
|
|
109
114
|
|
|
110
115
|
The receiver node must have a script with `func _on_start_pressed() -> void:`.
|
|
111
116
|
|
|
@@ -167,3 +172,17 @@ text = "Start Game"
|
|
|
167
172
|
## Collaborative protocol
|
|
168
173
|
|
|
169
174
|
This skill writes UI scene nodes and wires button signals. Always ask before applying: "May I add the MainMenu (Control + Margin + VBox + Title + Start/Quit buttons) and connect Start.pressed to `_on_start_pressed`?".
|
|
175
|
+
|
|
176
|
+
<!-- shell-commands: generated from the operation catalog by npm run generate:registry; do not edit by hand -->
|
|
177
|
+
## From a shell
|
|
178
|
+
|
|
179
|
+
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.
|
|
180
|
+
|
|
181
|
+
| In this skill | Command |
|
|
182
|
+
|---|---|
|
|
183
|
+
| `summer_add_node` | `summer engine add-node` |
|
|
184
|
+
| `summer_connect_signal` | `summer engine connect-signal` |
|
|
185
|
+
| `summer_run_script` | `summer engine run-script` |
|
|
186
|
+
| `summer_save_scene` | `summer engine save-scene` |
|
|
187
|
+
| `summer_set_prop` | `summer engine set-prop` |
|
|
188
|
+
<!-- /shell-commands -->
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
id: skill/ui-basics
|
|
2
2
|
kind: skill
|
|
3
3
|
version: 1.0.3
|
|
4
|
-
summary: Build
|
|
4
|
+
summary: "Build UI: HUDs, menus, health bars, dialogue boxes, Control trees, anchors, containers and themes."
|
|
5
5
|
use_when:
|
|
6
6
|
- "building Summer Engine UI: HUDs, main menus, pause menus, health bars, progress bars, dialogue boxes, or any Control-node tree"
|
|
7
7
|
- laying out a pause menu, settings screen, or inventory panel with anchors and containers so it stays responsive
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ui-graphics
|
|
3
|
-
description: "Generate game
|
|
3
|
+
description: "Generate game UI art (icons, buttons, panels, frames, HUD widgets) flat, on a transparent background."
|
|
4
4
|
license: MIT
|
|
5
5
|
compatibility: [Cursor, Claude Code, Windsurf, Codex]
|
|
6
6
|
category: 2d-assets
|
|
7
7
|
user-invocable: true
|
|
8
|
-
allowed-tools: Read Grep Glob Write Edit
|
|
8
|
+
allowed-tools: Read Grep Glob Write Edit summer_assets_generate_image summer_assets_search summer_import_from_url summer_set_resource_property summer_add_node summer_set_prop summer_call
|
|
9
9
|
paths: ["assets/**", "ui/**", "art/ui/**"]
|
|
10
10
|
---
|
|
11
11
|
|
|
@@ -54,19 +54,19 @@ Every icon / button / panel re-uses this anchor verbatim. Skipping this step pro
|
|
|
54
54
|
### 2. Search before generating
|
|
55
55
|
|
|
56
56
|
```
|
|
57
|
-
|
|
57
|
+
assets.search({ query: "<subject> icon", assetType: "2d_image", scope: "all" })
|
|
58
58
|
```
|
|
59
59
|
|
|
60
60
|
### 3. Pick the right pattern (icon vs button vs panel)
|
|
61
61
|
|
|
62
|
-
`
|
|
62
|
+
`assets.generate_image` takes `aspectRatio` (`1:1` default, `16:9`, `21:9`, `3:2`, `4:3`, ...) and, for a minimum size, `width` and `height`. Square suits icons, panels, and badges; wide assets (buttons, HUD bar frames) get a wide `aspectRatio`.
|
|
63
63
|
|
|
64
64
|
| Asset class | Framing | Wiring node | Notes |
|
|
65
65
|
|---|---|---|---|
|
|
66
66
|
| Icon (ability, item, status) | square (default) | `TextureRect` (or `AtlasTexture` if part of an icon sheet) | Centered subject, generous padding |
|
|
67
|
-
| Button (idle / hover / pressed) | wide —
|
|
67
|
+
| Button (idle / hover / pressed) | wide — `aspectRatio: "3:2"` or `"21:9"` | `Button` with custom theme OR `TextureButton` | Generate 3 variants of the same shape |
|
|
68
68
|
| Panel / frame (NinePatch-friendly) | square (default) | `NinePatchRect` | Border + center MUST be visually separable for 9-slicing |
|
|
69
|
-
| HUD bar frame | wide —
|
|
69
|
+
| HUD bar frame | wide — `aspectRatio: "21:9"` | `NinePatchRect` over `ProgressBar` | Frame only — bar fill is a separate gradient texture |
|
|
70
70
|
| Badge / emblem | square (default) | `TextureRect` | Symmetric, centered, no text |
|
|
71
71
|
|
|
72
72
|
### 4. Build the prompt — subject + anchor + transparent
|
|
@@ -83,29 +83,29 @@ Pattern:
|
|
|
83
83
|
|
|
84
84
|
**Icon example:**
|
|
85
85
|
```
|
|
86
|
-
|
|
87
|
-
prompt
|
|
88
|
-
model
|
|
89
|
-
style
|
|
90
|
-
removeBackground
|
|
91
|
-
)
|
|
86
|
+
assets.generate_image({
|
|
87
|
+
prompt: "ability icon for a fire spell, glowing flame in cupped hand, game UI, flat design with subtle gradient and soft inner shadow, 2px deep navy outline, gold and parchment palette, rounded square frame, centered, isolated on a plain background. Not photorealistic, no 3D render, no scene background, not busy, no multiple objects.",
|
|
88
|
+
model: "nano-banana-2",
|
|
89
|
+
style: "none",
|
|
90
|
+
removeBackground: true
|
|
91
|
+
})
|
|
92
92
|
```
|
|
93
93
|
|
|
94
|
-
|
|
94
|
+
There is no `negative_prompt`: the negations have to live in the prompt text.
|
|
95
95
|
|
|
96
96
|
**Button (3 states in 3 calls):**
|
|
97
97
|
```
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
98
|
+
assets.generate_image({ prompt: "<subject>, idle state, ...", aspectRatio: "3:2" })
|
|
99
|
+
assets.generate_image({ prompt: "<subject>, hover state, slightly brighter glow, ...", aspectRatio: "3:2" })
|
|
100
|
+
assets.generate_image({ prompt: "<subject>, pressed state, darker, slight inset shadow, ...", aspectRatio: "3:2" })
|
|
101
101
|
```
|
|
102
102
|
|
|
103
103
|
**Panel for NinePatch:**
|
|
104
104
|
```
|
|
105
|
-
|
|
106
|
-
prompt
|
|
105
|
+
assets.generate_image({
|
|
106
|
+
prompt: "parchment scroll panel frame, ornate gold border, weathered tan center, clear distinction between border and center area, game UI, fantasy, transparent background, square format, centered",
|
|
107
107
|
...
|
|
108
|
-
)
|
|
108
|
+
})
|
|
109
109
|
```
|
|
110
110
|
|
|
111
111
|
The "clear distinction between border and center" is the NinePatch hint — without it, the border bleeds into the center and 9-slicing produces artifacts.
|
|
@@ -120,25 +120,30 @@ Verify in the import dock: `Mipmaps: off` (UI shouldn't mipmap), `Filter: Linear
|
|
|
120
120
|
|
|
121
121
|
### 7. Wire into the scene
|
|
122
122
|
|
|
123
|
-
|
|
123
|
+
One `summer_run_script` call wires each graphic with its settings; `scenePath` is the exact scene to change.
|
|
124
124
|
|
|
125
125
|
**Icon as TextureRect:**
|
|
126
126
|
```
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
127
|
+
summer_run_script(scenePath="res://ui/hud.tscn", source="""
|
|
128
|
+
func run(ctx):
|
|
129
|
+
ctx.add_node("TextureRect", "FireSpellIcon", ctx.find("AbilityBar"), {
|
|
130
|
+
"texture": load("res://ui/icons/fire_spell.png"),
|
|
131
|
+
"expand_mode": TextureRect.EXPAND_IGNORE_SIZE,
|
|
132
|
+
"stretch_mode": TextureRect.STRETCH_KEEP_ASPECT_CENTERED,
|
|
133
|
+
})
|
|
134
|
+
ctx.save_scene()
|
|
135
|
+
""")
|
|
131
136
|
```
|
|
132
137
|
|
|
133
138
|
**Panel as NinePatchRect:**
|
|
134
139
|
```
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
140
|
+
summer_run_script(scenePath="res://ui/hud.tscn", source="""
|
|
141
|
+
func run(ctx):
|
|
142
|
+
var panel = ctx.add_node("NinePatchRect", "InventoryPanel", null, {"texture": load("res://ui/panels/parchment.png")})
|
|
143
|
+
for side in ["patch_margin_left", "patch_margin_right", "patch_margin_top", "patch_margin_bottom"]:
|
|
144
|
+
panel.set(side, 24)
|
|
145
|
+
ctx.save_scene()
|
|
146
|
+
""")
|
|
142
147
|
```
|
|
143
148
|
|
|
144
149
|
Tune patch margins to match the actual border width in the generated texture. Open the texture in the editor's NinePatch preview to verify.
|
|
@@ -190,17 +195,21 @@ If you generate a 4×4 grid of icons in one image, each icon becomes an `AtlasTe
|
|
|
190
195
|
- **Transparency comes back as a checkerboard pattern in the image.** The model rendered the checkerboard literally because the prompt asked for transparency. Remove every mention of transparency from the prompt, generate on a plain background, and pass `removeBackground: true` to cut the alpha server-side.
|
|
191
196
|
- **Icons need to read at very small size (16-24px in a packed bar).** Bias prompts toward bold silhouette + minimal interior detail. Ornate detail is invisible at 16px and adds noise.
|
|
192
197
|
|
|
198
|
+
## Without Summer Engine
|
|
199
|
+
|
|
200
|
+
In a session without Summer Engine tools (the assets profile; the `summer-assets` skill has the whole loop), do steps 1-5 and skip steps 6-7 (import, scene wiring). Pass `out` with the person's folder so each PNG lands there (the `summer-assets` skill says how); keep `removeBackground: true` for icons and buttons that need transparency.
|
|
201
|
+
|
|
193
202
|
## Fallback (no MCP)
|
|
194
203
|
|
|
195
204
|
Print the call:
|
|
196
205
|
|
|
197
206
|
```
|
|
198
|
-
|
|
199
|
-
prompt
|
|
200
|
-
model
|
|
201
|
-
style
|
|
202
|
-
removeBackground
|
|
203
|
-
)
|
|
207
|
+
assets.generate_image({
|
|
208
|
+
prompt: "<asset + anchor>, isolated on a plain background. No scene background, not photorealistic, no 3D, not busy.",
|
|
209
|
+
model: "nano-banana-2",
|
|
210
|
+
style: "none",
|
|
211
|
+
removeBackground: true
|
|
212
|
+
})
|
|
204
213
|
```
|
|
205
214
|
|
|
206
215
|
User runs via the Summer dashboard, then `summer_import_from_url` to `res://ui/icons/<name>.png` and wires manually.
|
|
@@ -221,4 +230,21 @@ After the UI graphic is wired:
|
|
|
221
230
|
- `character-portrait` — for in-UI character images.
|
|
222
231
|
- `pixel-art` — pixel-style UI.
|
|
223
232
|
- `scene-composition` — Theme and Control hierarchy.
|
|
224
|
-
-
|
|
233
|
+
- `summer_docs_read` id `reference/mcp-tools-reference` — how to call `assets.generate_image`.
|
|
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
|
+
| `assets.generate_image`, `summer_assets_generate_image` | `summer assets generate-image` |
|
|
243
|
+
| `summer_assets_search` | `summer assets search` |
|
|
244
|
+
| `summer_docs_read` | `summer docs read` |
|
|
245
|
+
| `summer_add_node` | `summer engine add-node` |
|
|
246
|
+
| `summer_import_from_url` | `summer engine import-from-url` |
|
|
247
|
+
| `summer_run_script` | `summer engine run-script` |
|
|
248
|
+
| `summer_set_prop` | `summer engine set-prop` |
|
|
249
|
+
| `summer_set_resource_property` | `summer engine set-resource-property` |
|
|
250
|
+
<!-- /shell-commands -->
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
id: skill/ui-graphics
|
|
2
2
|
kind: skill
|
|
3
3
|
version: 1.0.3
|
|
4
|
-
summary: Generate game
|
|
4
|
+
summary: "Generate game UI art (icons, buttons, panels, frames, HUD widgets) flat, on a transparent background."
|
|
5
5
|
use_when:
|
|
6
6
|
- generating UI elements — icons, buttons, panels, frames, HUD widgets, badges — in flat-design, transparent-background game-UI style
|
|
7
7
|
- a HUD still uses placeholder icons, buttons, or panels and needs consistent flat-design art
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: use-widget-asset
|
|
3
|
-
description: "Wire a widget slice from
|
|
3
|
+
description: "Wire a widget slice from an asset pack (panel, button, bar, toggle) into NinePatchRect or TextureRect."
|
|
4
4
|
license: MIT
|
|
5
5
|
compatibility: [Cursor, Claude Code, Windsurf, Codex]
|
|
6
6
|
category: 2d-assets
|
|
@@ -217,3 +217,17 @@ Check `metadata.schemaVersion` on the pack: `null` (or absent) = legacy, `1` = c
|
|
|
217
217
|
- Auto-tiling terrain (Wang / 47-tile). Different format entirely — see `tileable-texture`.
|
|
218
218
|
- Animated UI (button press-down sprites, hover glow). The wizard captures static frames; for animation see `sprite-sheet`.
|
|
219
219
|
- Non-AABB widgets in the 9-slice path. See the **Shape support** table at the top — for circles, hexagons, organic shapes, fall through to `TextureRect` and skip 9-slice entirely.
|
|
220
|
+
|
|
221
|
+
<!-- shell-commands: generated from the operation catalog by npm run generate:registry; do not edit by hand -->
|
|
222
|
+
## From a shell
|
|
223
|
+
|
|
224
|
+
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.
|
|
225
|
+
|
|
226
|
+
| In this skill | Command |
|
|
227
|
+
|---|---|
|
|
228
|
+
| `summer_add_node` | `summer engine add-node` |
|
|
229
|
+
| `summer_get_scene_tree` | `summer engine get-scene-tree` |
|
|
230
|
+
| `summer_inspect_node` | `summer engine inspect-node` |
|
|
231
|
+
| `summer_set_prop` | `summer engine set-prop` |
|
|
232
|
+
| `summer_set_resource_property` | `summer engine set-resource-property` |
|
|
233
|
+
<!-- /shell-commands -->
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
id: skill/use-widget-asset
|
|
2
2
|
kind: skill
|
|
3
3
|
version: 1.0.3
|
|
4
|
-
summary: Wire a widget slice from
|
|
4
|
+
summary: "Wire a widget slice from an asset pack (panel, button, bar, toggle) into NinePatchRect or TextureRect."
|
|
5
5
|
use_when:
|
|
6
6
|
- consuming a widget slice (panel, button, slider, progress bar, toggle pair) from a create-asset-sheet pack so it behaves like a real UI control
|
|
7
7
|
- turning a panel, button, slider, or bar slice from a generated UI kit into a working NinePatchRect or TextureProgressBar
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: using-summer
|
|
3
|
-
description: "Session bootstrap
|
|
3
|
+
description: "Session bootstrap: how to find and use Summer skills and the summer-engine MCP before any response."
|
|
4
4
|
license: MIT
|
|
5
5
|
compatibility: [Cursor, Claude Code, Codex, Windsurf, Gemini, OpenCode, Factory, Copilot]
|
|
6
6
|
category: _meta
|
|
@@ -33,10 +33,13 @@ If `CLAUDE.md` says "skip the brainstorm, just build it" and a skill says "alway
|
|
|
33
33
|
|
|
34
34
|
**Summer Engine** is an AI-native game engine — editor, scene graph, asset pipeline, and runtime are all instrumented for programmatic control by AI agents. **Summer** (this skill set + MCP server) is how your coding agent talks to it.
|
|
35
35
|
|
|
36
|
-
|
|
36
|
+
Three layers:
|
|
37
37
|
|
|
38
38
|
- **Skills** — discipline guides that fire on specific situations: brainstorming a game, designing a mechanic, building an FPS controller, debugging a crash, shipping a build. Each one is a SKILL.md you load via the Skill tool.
|
|
39
|
-
- **MCP tools** — `summer_*` tools that talk to the running Summer Engine on `localhost:6550`. Scene mutation (`summer_add_node`, `summer_set_prop`), inspection (`summer_get_scene_tree`, `summer_inspect_node`), play/diagnostics (`summer_play`, `summer_get_diagnostics`), asset import
|
|
39
|
+
- **MCP tools** — `summer_*` tools that talk to the running Summer Engine on `localhost:6550`. Scene mutation (`summer_add_node`, `summer_set_prop`), inspection (`summer_get_scene_tree`, `summer_inspect_node`), play/diagnostics (`summer_play`, `summer_get_diagnostics`), asset import (`summer_import_from_url`), and the rest of the `summer_*` set.
|
|
40
|
+
- **Operations** — Summer's cloud work (generating images, 3D, audio, video and animation, editing assets, store pages, jobs) is named by operation: `assets.generate_3d`, `jobs.wait`. 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. Long work (3D, video, animation) answers with a job: `jobs.wait({ jobId })` until it finishes. Spending operations accept `dryRun: true`, which returns the person's estimated credits and changes nothing.
|
|
41
|
+
|
|
42
|
+
**No `summer_*` tools in this session?** Summer was set up without MCP (`summer setup <agent> --cli`). Every tool and operation is also a `summer` command in the shell: use the `summer-cli` skill. Each skill's **From a shell** table gives the command for each tool it names.
|
|
40
43
|
|
|
41
44
|
**Scripting language:** The user is making a Summer game with the Summer SDK.
|
|
42
45
|
GDScript is the default creator language. Summer Engine follows its upstream
|
|
@@ -51,7 +54,7 @@ engine's own version string. You can write game code in either:
|
|
|
51
54
|
idioms. Confirm that the user wants C# before producing it; switching
|
|
52
55
|
languages mid-project is painful.
|
|
53
56
|
|
|
54
|
-
Scenes are always `.tscn`/`.scn`. Resources are always `.tres`/`.res`. Drive the engine through `summer_*` tools — do not hand-edit `.tscn` files; the editor holds in-memory state that diverges from disk.
|
|
57
|
+
Scenes are always `.tscn`/`.scn`. Resources are always `.tres`/`.res`. Drive the engine through `summer_*` tools — do not hand-edit `.tscn` files; the editor holds in-memory state that diverges from disk. 3 or more scene edits are one `summer_run_script` with `scenePath` (snapshot, script, diff, screenshot; see `scene-scripting`), not a chain of single calls.
|
|
55
58
|
|
|
56
59
|
The engine must be running for MCP tools that touch scenes or diagnostics. If it isn't, the tool returns an error pointing the user at `summer run`.
|
|
57
60
|
|
|
@@ -67,7 +70,7 @@ The engine must be running for MCP tools that touch scenes or diagnostics. If it
|
|
|
67
70
|
|
|
68
71
|
## Finding the Right Entry
|
|
69
72
|
|
|
70
|
-
Not sure which skill, tool, template, or reference covers the task? Ask the library before guessing: call `
|
|
73
|
+
Not sure which skill, tool, template, or reference covers the task? Ask the library before guessing: call `summer_docs_search` with the task in plain words ("make stylized water", "the player falls through the floor"), then `summer_docs_read` with the id you pick — it returns the entry itself (a skill's body and metadata, a tool's call recipe, a template's pin) and ends with the `entry_id` line to report through `summer_call` `{"op":"docs.feedback"}` once the outcome is verified. From a shell the same two are `summer tool search-library --args '{"query":"…"}'` and `summer tool read-library --args '{"id":"…"}'`; neither needs the engine. When search names a skill, invoke it by its bare slug through your host's skill mechanism (`vfx-water-ripple`, `fps-controller`, `design-mechanic`) rather than paraphrasing the body from the read.
|
|
71
74
|
|
|
72
75
|
## The Rule
|
|
73
76
|
|
|
@@ -162,3 +165,27 @@ After the refresh, restart or reload the agent/MCP session if tools were missing
|
|
|
162
165
|
## User Instructions Trump Everything
|
|
163
166
|
|
|
164
167
|
A direct user instruction ("skip the brainstorm", "just write the code", "don't use the MCP, edit files") overrides this skill. Surface the trade-off in one sentence ("Skipping brainstorm — heads up, scope creep is the most common reason game projects die.") and proceed as instructed.
|
|
168
|
+
|
|
169
|
+
<!-- shell-commands: generated from the operation catalog by npm run generate:registry; do not edit by hand -->
|
|
170
|
+
## From a shell
|
|
171
|
+
|
|
172
|
+
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.
|
|
173
|
+
|
|
174
|
+
| In this skill | Command |
|
|
175
|
+
|---|---|
|
|
176
|
+
| `assets.generate_3d` | `summer assets generate-3d` |
|
|
177
|
+
| `docs.feedback` | `summer docs feedback` |
|
|
178
|
+
| `summer_docs_read` | `summer docs read` |
|
|
179
|
+
| `summer_docs_search` | `summer docs search` |
|
|
180
|
+
| `summer_add_node` | `summer engine add-node` |
|
|
181
|
+
| `summer_get_diagnostics` | `summer engine get-diagnostics` |
|
|
182
|
+
| `summer_get_project_context` | `summer engine get-project-context` |
|
|
183
|
+
| `summer_get_scene_tree` | `summer engine get-scene-tree` |
|
|
184
|
+
| `summer_import_from_url` | `summer engine import-from-url` |
|
|
185
|
+
| `summer_inspect_node` | `summer engine inspect-node` |
|
|
186
|
+
| `summer_play` | `summer engine play` |
|
|
187
|
+
| `summer_run_script` | `summer engine run-script` |
|
|
188
|
+
| `summer_set_prop` | `summer engine set-prop` |
|
|
189
|
+
| `jobs.wait` | `summer jobs wait` |
|
|
190
|
+
| `summer_search` | `summer ops search "<what you want>"` |
|
|
191
|
+
<!-- /shell-commands -->
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
id: skill/using-summer
|
|
2
2
|
kind: skill
|
|
3
|
-
version: 1.0.
|
|
4
|
-
summary: Session bootstrap
|
|
3
|
+
version: 1.0.6
|
|
4
|
+
summary: "Session bootstrap: how to find and use Summer skills and the summer-engine MCP before any response."
|
|
5
5
|
use_when:
|
|
6
6
|
- starting any conversation in a Summer Engine project
|
|
7
7
|
- deciding which Summer skill or summer_* tool applies before answering a game-development request
|
|
@@ -31,6 +31,7 @@ related:
|
|
|
31
31
|
- skill/play
|
|
32
32
|
- skill/scene-composition
|
|
33
33
|
- skill/gdscript-patterns
|
|
34
|
+
- skill/summer-cli
|
|
34
35
|
source: official
|
|
35
36
|
license: MIT
|
|
36
37
|
status: stable
|