summer-engine 3.8.0 → 4.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +2 -13
- package/.claude-plugin/plugin.json +24 -22
- package/.codex-plugin/plugin.json +18 -22
- package/.cursor-plugin/plugin.json +8 -14
- package/.factory-plugin/plugin.json +6 -13
- package/AGENTS.md +19 -12
- package/CHANGELOG.md +133 -0
- package/GEMINI.md +3 -3
- package/README.md +118 -37
- package/assets/icon.png +0 -0
- package/commands/start.md +71 -0
- package/commands/summer.md +3 -2
- package/dist/cli/banner.js +3 -0
- package/dist/cli/commands/config.js +3 -2
- package/dist/cli/commands/create.js +12 -3
- package/dist/cli/commands/list.d.ts +5 -0
- package/dist/cli/commands/list.js +30 -13
- package/dist/cli/commands/login.d.ts +27 -0
- package/dist/cli/commands/login.js +58 -12
- package/dist/cli/commands/memory.js +6 -2
- package/dist/cli/commands/ops.d.ts +64 -0
- package/dist/cli/commands/ops.js +329 -0
- package/dist/cli/commands/setup.d.ts +4 -0
- package/dist/cli/commands/setup.js +254 -26
- package/dist/cli/commands/skills.js +28 -11
- package/dist/cli/commands/status.d.ts +26 -0
- package/dist/cli/commands/status.js +36 -21
- package/dist/cli/index.js +7 -0
- package/dist/core/agent-host.d.ts +65 -0
- package/dist/core/agent-host.js +193 -0
- package/dist/core/capabilities/agent-playbook.d.ts +3 -0
- package/dist/core/capabilities/agent-playbook.js +54 -2
- package/dist/core/capabilities/apps.d.ts +33 -10
- package/dist/core/capabilities/apps.js +25 -12
- package/dist/core/capabilities/audit/args.d.ts +6 -6
- package/dist/core/capabilities/doctor.d.ts +3 -0
- package/dist/core/capabilities/doctor.js +20 -15
- package/dist/core/capabilities/fabricate-mesh.d.ts +4 -4
- package/dist/core/capabilities/game-task-plan.d.ts +12 -6
- package/dist/core/capabilities/game-task-plan.js +80 -5
- package/dist/core/capabilities/hdri-import.d.ts +2 -2
- package/dist/core/capabilities/motion-generation.d.ts +2 -2
- package/dist/core/capabilities/motion-generation.js +2 -2
- package/dist/core/capabilities/navigation/open.d.ts +6 -2
- package/dist/core/capabilities/navigation/open.js +3 -0
- package/dist/core/capabilities/placement.d.ts +23 -23
- package/dist/core/capabilities/publish-build.js +2 -0
- package/dist/core/capabilities/runtime-control.d.ts +42 -42
- package/dist/core/capabilities/scene-script-target.d.ts +17 -0
- package/dist/core/capabilities/scene-script-target.js +70 -0
- package/dist/core/capabilities/seeing/args.d.ts +16 -16
- package/dist/core/capabilities/sfx-choices.d.ts +4 -0
- package/dist/core/capabilities/sfx-choices.js +13 -6
- package/dist/core/capabilities/tool-dispatch.d.ts +12 -3
- package/dist/core/capabilities/tool-dispatch.js +81 -46
- package/dist/core/capabilities/ui-control.d.ts +2 -2
- package/dist/core/capabilities/world-snapshot.d.ts +4 -4
- package/dist/core/embeddings.d.ts +2 -0
- package/dist/core/embeddings.js +1 -1
- package/dist/core/error-codes.d.ts +62 -0
- package/dist/core/error-codes.js +97 -0
- package/dist/core/format.d.ts +2 -0
- package/dist/core/format.js +2 -1
- package/dist/core/hosted-mcp.d.ts +22 -0
- package/dist/core/hosted-mcp.js +56 -1
- package/dist/core/library-read.js +5 -0
- package/dist/core/library-search.d.ts +2 -2
- package/dist/core/library-search.js +2 -1
- package/dist/core/oauth.js +4 -0
- package/dist/core/ops/areas.d.ts +11 -0
- package/dist/core/ops/areas.js +24 -0
- package/dist/core/ops/catalog.d.ts +45 -0
- package/dist/core/ops/catalog.js +157 -0
- package/dist/core/ops/cloud.d.ts +64 -0
- package/dist/core/ops/cloud.js +198 -0
- package/dist/core/ops/contract.d.ts +120 -0
- package/dist/core/ops/contract.js +134 -0
- package/dist/core/ops/engine-answer.d.ts +25 -0
- package/dist/core/ops/engine-answer.js +117 -0
- package/dist/core/ops/engine.d.ts +55 -0
- package/dist/core/ops/engine.js +649 -0
- package/dist/core/ops/public-catalog.d.ts +48 -0
- package/dist/core/ops/public-catalog.js +56 -0
- package/dist/core/ops/save-files.d.ts +78 -0
- package/dist/core/ops/save-files.js +419 -0
- package/dist/core/ops/search.d.ts +8 -0
- package/dist/core/ops/search.js +187 -0
- package/dist/core/skills-registry.d.ts +16 -1
- package/dist/core/skills-registry.js +35 -2
- package/dist/core/telemetry.d.ts +32 -0
- package/dist/core/telemetry.js +38 -10
- package/dist/core/tool-profiles.d.ts +25 -0
- package/dist/core/tool-profiles.js +41 -0
- package/dist/installer/agent-config.d.ts +17 -4
- package/dist/installer/agent-config.js +27 -6
- package/dist/installer/agent-table.d.ts +12 -0
- package/dist/installer/agent-table.js +33 -9
- package/dist/installer/cli-permissions.d.ts +65 -0
- package/dist/installer/cli-permissions.js +182 -0
- package/dist/installer/setup.d.ts +4 -0
- package/dist/installer/setup.js +12 -4
- package/dist/installer/skills-refresh.d.ts +29 -0
- package/dist/installer/skills-refresh.js +261 -0
- package/dist/installer/version-check.d.ts +51 -11
- package/dist/installer/version-check.js +147 -37
- package/dist/mcp/command.js +7 -0
- package/dist/mcp/hosted-mount.d.ts +27 -2
- package/dist/mcp/hosted-mount.js +53 -23
- package/dist/mcp/legacy-toolset.d.ts +27 -0
- package/dist/mcp/legacy-toolset.js +43 -0
- package/dist/mcp/ops-surface.d.ts +59 -0
- package/dist/mcp/ops-surface.js +453 -0
- package/dist/mcp/server.d.ts +45 -11
- package/dist/mcp/server.js +263 -89
- package/dist/mcp/tool-results.d.ts +26 -0
- package/dist/mcp/tool-results.js +81 -0
- package/dist/mcp/tool-surface.d.ts +65 -0
- package/dist/mcp/tool-surface.js +317 -0
- package/dist/mcp/tools/app-tools.js +9 -2
- package/dist/mcp/tools/asset-tools.js +55 -53
- package/dist/mcp/tools/audit-tools.js +21 -21
- package/dist/mcp/tools/debug-tools.js +6 -6
- package/dist/mcp/tools/fabricate-tools.js +6 -6
- package/dist/mcp/tools/generate-tools.js +76 -70
- package/dist/mcp/tools/project-tools.d.ts +9 -4
- package/dist/mcp/tools/project-tools.js +16 -10
- package/dist/mcp/tools/scene-tools.js +12 -23
- package/dist/mcp/tools/script-tools.js +9 -5
- package/dist/mcp/tools/with-engine.d.ts +6 -0
- package/dist/mcp/tools/with-engine.js +19 -0
- package/dist/project-memory/agent-instructions.d.ts +47 -0
- package/dist/project-memory/agent-instructions.js +226 -0
- package/gemini-extension.json +6 -13
- package/hooks/pre-commit-doctor.sh +5 -4
- package/hooks/session-start.sh +24 -28
- package/integrations/README.md +1 -1
- package/integrations/claude/README.md +6 -0
- package/integrations/claude/manifest-target.json +4 -0
- package/integrations/claude-desktop/README.md +1 -1
- package/integrations/copilot-jetbrains/README.md +1 -1
- package/integrations/gemini/README.md +11 -0
- package/integrations/junie/README.md +1 -1
- package/integrations/lm-studio/README.md +1 -1
- package/integrations/trae/README.md +1 -1
- package/integrations/visual-studio/README.md +1 -1
- package/integrations/windsurf/README.md +1 -1
- package/library/references/mcp-tools-reference/mcp-tools-reference.md +79 -51
- package/library/references/mcp-tools-reference/resource.yaml +1 -1
- package/library/references/product-map/resource.yaml +2 -2
- package/library/skills/3d-lighting/SKILL.md +69 -28
- package/library/skills/3d-lighting/resource.yaml +1 -1
- package/library/skills/README.md +121 -118
- package/library/skills/adaptive-music/SKILL.md +40 -23
- package/library/skills/adaptive-music/resource.yaml +1 -1
- package/library/skills/agent-playtesting/SKILL.md +23 -1
- package/library/skills/agent-playtesting/resource.yaml +1 -1
- package/library/skills/ai-characters-in-games/SKILL.md +16 -1
- package/library/skills/ai-characters-in-games/resource.yaml +1 -1
- package/library/skills/ambient-bed/SKILL.md +38 -13
- package/library/skills/ambient-bed/resource.yaml +1 -1
- package/library/skills/animated-loop/SKILL.md +60 -32
- package/library/skills/animated-loop/resource.yaml +1 -1
- package/library/skills/animation-tree/SKILL.md +27 -1
- package/library/skills/animation-tree/resource.yaml +1 -1
- package/library/skills/art-direction/SKILL.md +17 -3
- package/library/skills/art-direction/resource.yaml +1 -1
- package/library/skills/asset-strategy/SKILL.md +51 -4
- package/library/skills/asset-strategy/resource.yaml +2 -1
- package/library/skills/audio-direction/SKILL.md +26 -10
- package/library/skills/audio-direction/resource.yaml +1 -1
- package/library/skills/auto-fire-targeting/SKILL.md +15 -1
- package/library/skills/auto-fire-targeting/resource.yaml +1 -1
- package/library/skills/bounded-engine-runs/SKILL.md +1 -1
- package/library/skills/bounded-engine-runs/resource.yaml +1 -1
- package/library/skills/brainstorm-game/SKILL.md +14 -1
- package/library/skills/brainstorm-game/resource.yaml +1 -1
- package/library/skills/brainstorming/SKILL.md +1 -1
- package/library/skills/brainstorming/resource.yaml +1 -1
- package/library/skills/browse-templates/SKILL.md +11 -1
- package/library/skills/browse-templates/resource.yaml +1 -1
- package/library/skills/camera-rigs/SKILL.md +22 -2
- package/library/skills/camera-rigs/resource.yaml +1 -1
- package/library/skills/celeste-momentum-platforming/resource.yaml +1 -0
- package/library/skills/character-animation-wiring/SKILL.md +28 -4
- package/library/skills/character-animation-wiring/resource.yaml +1 -1
- package/library/skills/character-model/SKILL.md +83 -47
- package/library/skills/character-model/resource.yaml +1 -1
- package/library/skills/character-movement/SKILL.md +27 -3
- package/library/skills/character-movement/resource.yaml +1 -1
- package/library/skills/character-portrait/SKILL.md +39 -19
- package/library/skills/character-portrait/resource.yaml +1 -1
- package/library/skills/cinematic-cutscene/SKILL.md +79 -46
- package/library/skills/cinematic-cutscene/resource.yaml +1 -1
- package/library/skills/combat-basics/SKILL.md +20 -1
- package/library/skills/combat-basics/resource.yaml +1 -1
- package/library/skills/compatibility-renderer-traps/SKILL.md +12 -1
- package/library/skills/compatibility-renderer-traps/resource.yaml +1 -1
- package/library/skills/concept-art/SKILL.md +29 -12
- package/library/skills/concept-art/resource.yaml +1 -1
- package/library/skills/concept-to-level/SKILL.md +258 -0
- package/library/skills/concept-to-level/references/technical-rules.md +150 -0
- package/library/skills/concept-to-level/resource.yaml +44 -0
- package/library/skills/create-asset-sheet/SKILL.md +37 -13
- package/library/skills/create-asset-sheet/resource.yaml +1 -1
- package/library/skills/debug/SKILL.md +34 -2
- package/library/skills/debug/resource.yaml +1 -1
- package/library/skills/debugging-game-feel/SKILL.md +13 -1
- package/library/skills/debugging-game-feel/resource.yaml +1 -1
- package/library/skills/design-level/SKILL.md +40 -35
- package/library/skills/design-level/resource.yaml +1 -1
- package/library/skills/design-mechanic/SKILL.md +18 -1
- package/library/skills/design-mechanic/resource.yaml +1 -1
- package/library/skills/design-npc/SKILL.md +43 -24
- package/library/skills/design-npc/resource.yaml +1 -1
- package/library/skills/diagnosing-perf-regressions/SKILL.md +13 -1
- package/library/skills/diagnosing-perf-regressions/resource.yaml +1 -1
- package/library/skills/driving-the-editor-ui/SKILL.md +24 -1
- package/library/skills/driving-the-editor-ui/resource.yaml +1 -1
- package/library/skills/environment-kit/SKILL.md +43 -16
- package/library/skills/environment-kit/resource.yaml +1 -1
- package/library/skills/export-and-ship/SKILL.md +29 -6
- package/library/skills/export-and-ship/resource.yaml +1 -1
- package/library/skills/fabricating-assets/SKILL.md +30 -7
- package/library/skills/fabricating-assets/resource.yaml +3 -3
- package/library/skills/facial-and-lipsync/SKILL.md +36 -15
- package/library/skills/facial-and-lipsync/resource.yaml +1 -1
- package/library/skills/fps-controller/SKILL.md +50 -41
- package/library/skills/fps-controller/resource.yaml +1 -1
- package/library/skills/game-feel/SKILL.md +34 -8
- package/library/skills/game-feel/resource.yaml +1 -1
- package/library/skills/gameskill/SKILL.md +15 -4
- package/library/skills/gameskill/resource.yaml +1 -1
- package/library/skills/gdscript-patterns/SKILL.md +16 -1
- package/library/skills/gdscript-patterns/resource.yaml +1 -1
- package/library/skills/generate-motion/SKILL.md +51 -21
- package/library/skills/generate-motion/resource.yaml +1 -1
- package/library/skills/godogen-visual-proof-game-generation/SKILL.md +18 -1
- package/library/skills/godogen-visual-proof-game-generation/resource.yaml +1 -0
- package/library/skills/grow-analytics/SKILL.md +13 -3
- package/library/skills/grow-analytics/resource.yaml +1 -1
- package/library/skills/headless-scripting/SKILL.md +14 -1
- package/library/skills/headless-scripting/resource.yaml +1 -1
- package/library/skills/in-game-purchases/SKILL.md +12 -1
- package/library/skills/in-game-purchases/resource.yaml +1 -1
- package/library/skills/instantiate-asset-pack/SKILL.md +19 -2
- package/library/skills/instantiate-asset-pack/resource.yaml +1 -1
- package/library/skills/lumera-single-image-scene-reconstruction/resource.yaml +1 -0
- package/library/skills/make-game/SKILL.md +33 -4
- package/library/skills/make-game/references/2d-platformer.md +1 -1
- package/library/skills/make-game/references/3d-fps.md +1 -1
- package/library/skills/make-game/references/3d-horror.md +1 -1
- package/library/skills/make-game/references/3d-third-person.md +2 -2
- package/library/skills/make-game/resource.yaml +1 -1
- package/library/skills/multiplayer/SKILL.md +13 -1
- package/library/skills/multiplayer/resource.yaml +1 -1
- package/library/skills/multiplayer-movement/SKILL.md +19 -1
- package/library/skills/multiplayer-movement/resource.yaml +1 -1
- package/library/skills/multiplayer-project/SKILL.md +18 -1
- package/library/skills/multiplayer-project/resource.yaml +1 -1
- package/library/skills/multiplayer-publish/SKILL.md +25 -7
- package/library/skills/multiplayer-publish/resource.yaml +3 -3
- package/library/skills/multiplayer-state/SKILL.md +17 -1
- package/library/skills/multiplayer-state/resource.yaml +1 -1
- package/library/skills/multiplayer-testing/SKILL.md +16 -1
- package/library/skills/multiplayer-testing/resource.yaml +1 -1
- package/library/skills/music-track/SKILL.md +38 -13
- package/library/skills/music-track/resource.yaml +1 -1
- package/library/skills/navigate-summer/SKILL.md +26 -9
- package/library/skills/navigate-summer/resource.yaml +1 -1
- package/library/skills/new-project/SKILL.md +12 -1
- package/library/skills/new-project/resource.yaml +1 -1
- package/library/skills/organic-model/SKILL.md +48 -18
- package/library/skills/organic-model/resource.yaml +1 -1
- package/library/skills/pixel-art/SKILL.md +42 -23
- package/library/skills/pixel-art/resource.yaml +1 -1
- package/library/skills/play/SKILL.md +19 -1
- package/library/skills/play/resource.yaml +1 -1
- package/library/skills/playtesting-a-feature/SKILL.md +24 -1
- package/library/skills/playtesting-a-feature/resource.yaml +1 -1
- package/library/skills/procedural-animation/SKILL.md +38 -16
- package/library/skills/procedural-animation/resource.yaml +1 -1
- package/library/skills/prop-model/SKILL.md +48 -19
- package/library/skills/prop-model/resource.yaml +1 -1
- package/library/skills/psx-retro-rendering/resource.yaml +1 -0
- package/library/skills/publish-your-game/SKILL.md +43 -6
- package/library/skills/publish-your-game/resource.yaml +3 -3
- package/library/skills/realtime-wet-surfaces/resource.yaml +1 -0
- package/library/skills/release-readiness/SKILL.md +13 -1
- package/library/skills/release-readiness/resource.yaml +1 -1
- package/library/skills/remote-deploy/SKILL.md +15 -1
- package/library/skills/remote-deploy/resource.yaml +1 -1
- package/library/skills/retarget/SKILL.md +43 -20
- package/library/skills/retarget/resource.yaml +1 -1
- package/library/skills/running-in-the-cloud/SKILL.md +11 -1
- package/library/skills/running-in-the-cloud/resource.yaml +1 -1
- package/library/skills/save-load/SKILL.md +16 -1
- package/library/skills/save-load/resource.yaml +1 -1
- package/library/skills/scene-composition/SKILL.md +18 -1
- package/library/skills/scene-composition/resource.yaml +1 -1
- package/library/skills/scene-hierarchy-design/SKILL.md +26 -2
- package/library/skills/scene-hierarchy-design/resource.yaml +1 -1
- package/library/skills/scene-scripting/SKILL.md +96 -636
- package/library/skills/scene-scripting/references/ctx-api.md +184 -0
- package/library/skills/scene-scripting/references/recipes-2d-ui.md +193 -0
- package/library/skills/scene-scripting/references/recipes-3d.md +280 -0
- package/library/skills/scene-scripting/resource.yaml +4 -4
- package/library/skills/scene-to-level/SKILL.md +24 -2
- package/library/skills/scene-to-level/resource.yaml +1 -1
- package/library/skills/skill-create/resource.yaml +1 -0
- package/library/skills/skill-improve/resource.yaml +1 -0
- package/library/skills/skill-test/SKILL.md +12 -2
- package/library/skills/skill-test/resource.yaml +1 -0
- package/library/skills/skintokens-auto-rigging/resource.yaml +1 -0
- package/library/skills/skybox-panorama/SKILL.md +47 -21
- package/library/skills/skybox-panorama/resource.yaml +1 -1
- package/library/skills/sound-effect/SKILL.md +52 -20
- package/library/skills/sound-effect/resource.yaml +1 -1
- package/library/skills/spatial-placement/SKILL.md +44 -9
- package/library/skills/spatial-placement/resource.yaml +1 -1
- package/library/skills/sprite-sheet/SKILL.md +55 -27
- package/library/skills/sprite-sheet/resource.yaml +1 -1
- package/library/skills/store-art/SKILL.md +14 -3
- package/library/skills/store-art/resource.yaml +2 -2
- package/library/skills/store-listing/SKILL.md +13 -3
- package/library/skills/store-listing/resource.yaml +2 -2
- package/library/skills/summer-analytics/SKILL.md +22 -5
- package/library/skills/summer-analytics/resource.yaml +2 -2
- package/library/skills/summer-apps/SKILL.md +77 -32
- package/library/skills/summer-apps/manifest.md +1 -1
- package/library/skills/summer-apps/minimal-app.md +7 -7
- package/library/skills/summer-apps/resource.yaml +1 -1
- package/library/skills/summer-apps/sdk-reference.md +5 -5
- package/library/skills/summer-apps-design/SKILL.md +1 -1
- package/library/skills/summer-apps-design/resource.yaml +1 -1
- package/library/skills/summer-assets/SKILL.md +86 -0
- package/library/skills/summer-assets/resource.yaml +34 -0
- package/library/skills/summer-cli/SKILL.md +133 -0
- package/library/skills/summer-cli/resource.yaml +31 -0
- package/library/skills/summer-friends/SKILL.md +14 -0
- package/library/skills/summer-leaderboards/SKILL.md +16 -0
- package/library/skills/summer-match-results/SKILL.md +17 -0
- package/library/skills/summer-matchmaking/SKILL.md +17 -0
- package/library/skills/summer-parties/SKILL.md +14 -0
- package/library/skills/summer-player-data/SKILL.md +14 -0
- package/library/skills/summer-store/SKILL.md +16 -1
- package/library/skills/summer-world-chat/SKILL.md +14 -0
- package/library/skills/summer-world-saves/SKILL.md +14 -0
- package/library/skills/text-to-motion/SKILL.md +45 -23
- package/library/skills/text-to-motion/prompts-and-controls.md +5 -5
- package/library/skills/text-to-motion/resource.yaml +1 -1
- package/library/skills/text-to-motion/rigging-for-text-motion.md +2 -2
- package/library/skills/tileable-texture/SKILL.md +37 -15
- package/library/skills/tileable-texture/resource.yaml +1 -1
- package/library/skills/trailer-shot/SKILL.md +46 -24
- package/library/skills/trailer-shot/resource.yaml +1 -1
- package/library/skills/tune-performance/SKILL.md +32 -6
- package/library/skills/tune-performance/resource.yaml +1 -1
- package/library/skills/ui-basics/SKILL.md +55 -36
- package/library/skills/ui-basics/resource.yaml +1 -1
- package/library/skills/ui-graphics/SKILL.md +64 -38
- package/library/skills/ui-graphics/resource.yaml +1 -1
- package/library/skills/use-widget-asset/SKILL.md +15 -1
- package/library/skills/use-widget-asset/resource.yaml +1 -1
- package/library/skills/using-summer/SKILL.md +32 -5
- package/library/skills/using-summer/resource.yaml +3 -2
- package/library/skills/vehicle-model/SKILL.md +92 -57
- package/library/skills/vehicle-model/resource.yaml +1 -1
- package/library/skills/verification-before-completion/SKILL.md +1 -1
- package/library/skills/verification-before-completion/resource.yaml +1 -1
- package/library/skills/verifying-scenes/SKILL.md +31 -2
- package/library/skills/verifying-scenes/resource.yaml +1 -1
- package/library/skills/vfx-dissolve/SKILL.md +21 -2
- package/library/skills/vfx-dissolve/resource.yaml +1 -1
- package/library/skills/vfx-fire/SKILL.md +41 -41
- package/library/skills/vfx-fire/resource.yaml +1 -1
- package/library/skills/vfx-hit-spark/SKILL.md +24 -1
- package/library/skills/vfx-hit-spark/resource.yaml +1 -1
- package/library/skills/vfx-lightning/SKILL.md +30 -16
- package/library/skills/vfx-lightning/resource.yaml +1 -1
- package/library/skills/vfx-magic-glow/SKILL.md +46 -32
- package/library/skills/vfx-magic-glow/resource.yaml +1 -1
- package/library/skills/vfx-muzzle-flash/SKILL.md +43 -35
- package/library/skills/vfx-muzzle-flash/resource.yaml +1 -1
- package/library/skills/vfx-smoke/SKILL.md +39 -31
- package/library/skills/vfx-smoke/resource.yaml +1 -1
- package/library/skills/vfx-water-ripple/SKILL.md +35 -31
- package/library/skills/vfx-water-ripple/resource.yaml +1 -1
- package/library/skills/voice-line/SKILL.md +87 -40
- package/library/skills/voice-line/resource.yaml +1 -1
- package/library/skills/web-and-touch-input/SKILL.md +20 -1
- package/library/skills/web-and-touch-input/resource.yaml +1 -1
- package/library/skills/web-compatibility-look/SKILL.md +21 -1
- package/library/skills/web-compatibility-look/resource.yaml +1 -1
- package/library/skills/world-building-3d/SKILL.md +29 -1
- package/library/skills/world-building-3d/resource.yaml +1 -1
- package/library/skills/writing-skills/resource.yaml +1 -0
- package/library/tools/add-node/GUIDE.md +14 -0
- package/library/tools/align-distribute-3d/GUIDE.md +7 -0
- package/library/tools/app-call/resource.yaml +1 -1
- package/library/tools/app-guide/resource.yaml +2 -2
- package/library/tools/app-page/resource.yaml +1 -1
- package/library/tools/app-screenshot/resource.yaml +19 -1
- package/library/tools/app-tools/resource.yaml +1 -1
- package/library/tools/attach-to-surface/GUIDE.md +15 -0
- package/library/tools/batch/GUIDE.md +27 -0
- package/library/tools/camera-bookmark/GUIDE.md +12 -0
- package/library/tools/capture-gameplay/GUIDE.md +3 -0
- package/library/tools/capture-gameplay/resource.yaml +3 -3
- package/library/tools/check-job/resource.yaml +1 -1
- package/library/tools/clear-console/GUIDE.md +3 -0
- package/library/tools/connect-ports/GUIDE.md +9 -0
- package/library/tools/connect-signal/GUIDE.md +14 -0
- package/library/tools/create-debug-report/GUIDE.md +10 -0
- package/library/tools/create-scene/GUIDE.md +10 -0
- package/library/tools/debug-views/GUIDE.md +7 -0
- package/library/tools/enable-plugin/GUIDE.md +3 -0
- package/library/tools/export-game/GUIDE.md +3 -0
- package/library/tools/export-game/resource.yaml +3 -3
- package/library/tools/export-templates/GUIDE.md +3 -0
- package/library/tools/fabricate-3d/GUIDE.md +19 -0
- package/library/tools/frame-nodes/GUIDE.md +9 -0
- package/library/tools/frame-shot/GUIDE.md +9 -0
- package/library/tools/game-control/GUIDE.md +9 -0
- package/library/tools/game-input/GUIDE.md +9 -0
- package/library/tools/game-probe/GUIDE.md +9 -0
- package/library/tools/generate-3d/resource.yaml +3 -3
- package/library/tools/generate-motion/resource.yaml +2 -2
- package/library/tools/get-console/GUIDE.md +9 -0
- package/library/tools/get-console/resource.yaml +5 -0
- package/library/tools/get-debugger-errors/GUIDE.md +7 -0
- package/library/tools/get-debugger-errors/resource.yaml +5 -0
- package/library/tools/get-debugger-warnings/GUIDE.md +7 -0
- package/library/tools/get-debugger-warnings/resource.yaml +5 -0
- package/library/tools/get-diagnostics/GUIDE.md +13 -0
- package/library/tools/get-project-context/GUIDE.md +25 -0
- package/library/tools/get-runtime-tree/GUIDE.md +7 -0
- package/library/tools/get-runtime-tree/resource.yaml +5 -0
- package/library/tools/get-scene-tree/GUIDE.md +11 -0
- package/library/tools/get-scene-tree/resource.yaml +5 -0
- package/library/tools/get-script-errors/GUIDE.md +5 -0
- package/library/tools/grep/GUIDE.md +11 -0
- package/library/tools/import-asset/GUIDE.md +8 -0
- package/library/tools/import-asset-by-id/GUIDE.md +12 -0
- package/library/tools/import-from-url/GUIDE.md +10 -0
- package/library/tools/import-from-url-batch/GUIDE.md +3 -0
- package/library/tools/import-hdri/GUIDE.md +16 -0
- package/library/tools/input-map-bind/GUIDE.md +11 -0
- package/library/tools/inspect-asset/GUIDE.md +14 -0
- package/library/tools/inspect-asset/resource.yaml +5 -0
- package/library/tools/inspect-node/GUIDE.md +11 -0
- package/library/tools/inspect-node/resource.yaml +5 -0
- package/library/tools/inspect-resource/GUIDE.md +7 -0
- package/library/tools/inspect-resource/resource.yaml +5 -0
- package/library/tools/inspect-runtime-node/GUIDE.md +7 -0
- package/library/tools/inspect-runtime-node/resource.yaml +5 -0
- package/library/tools/instantiate-scene/GUIDE.md +12 -0
- package/library/tools/is-running/GUIDE.md +3 -0
- package/library/tools/measure/GUIDE.md +8 -0
- package/library/tools/navigation-probe/GUIDE.md +9 -0
- package/library/tools/open/resource.yaml +2 -2
- package/library/tools/open-main-scene/GUIDE.md +6 -0
- package/library/tools/open-scene/GUIDE.md +8 -0
- package/library/tools/place-adjacent/GUIDE.md +7 -0
- package/library/tools/play/GUIDE.md +13 -0
- package/library/tools/project-setting/GUIDE.md +9 -0
- package/library/tools/publish-build/resource.yaml +6 -6
- package/library/tools/raycast/GUIDE.md +7 -0
- package/library/tools/read-file/GUIDE.md +10 -0
- package/library/tools/read-library/resource.yaml +5 -0
- package/library/tools/recent-events/GUIDE.md +7 -0
- package/library/tools/remove-node/GUIDE.md +3 -0
- package/library/tools/repeat-along/GUIDE.md +5 -0
- package/library/tools/replace-node/GUIDE.md +9 -0
- package/library/tools/replace-text/GUIDE.md +5 -0
- package/library/tools/run-editor-script/GUIDE.md +16 -0
- package/library/tools/run-script/GUIDE.md +30 -0
- package/library/tools/run-script/resource.yaml +6 -3
- package/library/tools/runtime-animate/GUIDE.md +7 -0
- package/library/tools/runtime-call/GUIDE.md +7 -0
- package/library/tools/runtime-set/GUIDE.md +9 -0
- package/library/tools/runtime-spawn/GUIDE.md +9 -0
- package/library/tools/save-scene/GUIDE.md +3 -0
- package/library/tools/scene-audit/GUIDE.md +29 -0
- package/library/tools/screenshot/GUIDE.md +17 -0
- package/library/tools/select-node/GUIDE.md +3 -0
- package/library/tools/set-prop/GUIDE.md +23 -0
- package/library/tools/set-resource-property/GUIDE.md +8 -0
- package/library/tools/shot-sheet/GUIDE.md +7 -0
- package/library/tools/snap-to-surface/GUIDE.md +17 -0
- package/library/tools/snapshot-diff/GUIDE.md +7 -0
- package/library/tools/starcast/GUIDE.md +12 -0
- package/library/tools/stop/GUIDE.md +3 -0
- package/library/tools/test-placement/GUIDE.md +7 -0
- package/library/tools/ui-actions/GUIDE.md +12 -0
- package/library/tools/ui-activate/GUIDE.md +11 -0
- package/library/tools/ui-screenshot/GUIDE.md +9 -0
- package/library/tools/ui-tree/GUIDE.md +10 -0
- package/library/tools/wait-for-event/GUIDE.md +11 -0
- package/library/tools/world-snapshot/GUIDE.md +9 -0
- package/library/tools/write-file/GUIDE.md +5 -0
- package/library/tools/zoom/GUIDE.md +5 -0
- package/package.json +8 -5
- package/registry/generated/counts.json +2 -2
- package/registry/generated/gemini-extension.json +6 -13
- package/registry/generated/index.json +482 -349
- package/registry/generated/marketplace.claude.json +2 -13
- package/registry/generated/plugin.claude-directory.json +168 -0
- package/registry/generated/plugin.claude.json +24 -22
- package/registry/generated/plugin.codex.json +18 -22
- package/registry/generated/plugin.cursor.json +8 -14
- package/registry/generated/plugin.factory.json +6 -13
- package/registry/generated/server.json +43 -0
- package/registry/generated/skills-index.md +121 -118
- package/registry/generated/skills-registry.json +167 -115
- package/registry/operations/fixtures/invalid-deprecated-without-replacement.json +60 -0
- package/registry/operations/fixtures/invalid-name.json +60 -0
- package/registry/operations/fixtures/invalid-publish-without-owner.json +82 -0
- package/registry/operations/fixtures/invalid-spend-without-estimate.json +42 -0
- package/registry/operations/fixtures/invalid-unknown-field.json +61 -0
- package/registry/operations/fixtures/valid-player-facing.json +82 -0
- package/registry/operations/fixtures/valid-read.json +60 -0
- package/registry/operations/fixtures/valid-spend.json +43 -0
- package/registry/operations/legacy-names.json +1241 -0
- package/registry/operations/public-catalog.json +33160 -0
- package/registry/schemas/operation.schema.json +318 -0
- package/registry/schemas/skill.schema.json +4 -0
- package/CLAUDE.md +0 -7
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
id: skill/concept-art
|
|
2
2
|
kind: skill
|
|
3
3
|
version: 1.0.2
|
|
4
|
-
summary: Explore art direction with 3-4 rough concept variants of a character, environment
|
|
4
|
+
summary: "Explore art direction with 3-4 rough concept variants of a character, environment or prop."
|
|
5
5
|
use_when:
|
|
6
6
|
- exploring art direction with rough variants before committing to a final asset
|
|
7
7
|
- the user wants a mood board, rough sketches, or 'what could this look like'
|
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: concept-to-level
|
|
3
|
+
description: "Take a 3D map from concept art to a shippable level: questions for the user, owned lanes, render checks, collision kept in step."
|
|
4
|
+
license: MIT
|
|
5
|
+
compatibility: [Cursor, Claude Code, Windsurf, Codex]
|
|
6
|
+
category: level-design
|
|
7
|
+
user-invocable: true
|
|
8
|
+
allowed-tools: Read Grep Glob Write Edit Bash summer_assets_generate_image summer_assets_generate_3d summer_jobs_wait summer_call summer_screenshot summer_get_scene_tree summer_inspect_node summer_set_prop summer_save_scene summer_get_diagnostics summer_get_script_errors
|
|
9
|
+
paths: ["**/*.tscn", "**/*.gdshader", "**/*.gdshaderinc", "level/**", "levels/**", "docs/**", ".summer/**"]
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# concept-to-level — from concept art to a polished level
|
|
13
|
+
|
|
14
|
+
Use this when a 3D map has to go from "here is the idea" to a level that
|
|
15
|
+
looks finished, plays right online and offline, and runs well. It is the
|
|
16
|
+
process and the judgment; the specialist skills it names do the leaf work.
|
|
17
|
+
|
|
18
|
+
Distilled from one long build of a 1v1 arena duel map (a white-marble drill
|
|
19
|
+
yard on a mountain peak above the clouds, with god hands that change the
|
|
20
|
+
map mid-match). Its mistakes are the reason most rules below exist.
|
|
21
|
+
|
|
22
|
+
**Core principle:** agree the look before you build it, build in lanes that
|
|
23
|
+
each own their files, and never call a lane done without a render you have
|
|
24
|
+
opened for the user.
|
|
25
|
+
|
|
26
|
+
## When to use
|
|
27
|
+
|
|
28
|
+
- "Turn this concept art into the real map." (3D, shipping quality)
|
|
29
|
+
- "Rework this level's theme, keep the layout."
|
|
30
|
+
- "Polish this map: materials, props, sky, effects."
|
|
31
|
+
- Several agents will work on one map at once.
|
|
32
|
+
|
|
33
|
+
## When NOT to use
|
|
34
|
+
|
|
35
|
+
- A 2D or quick playable scene from a reference image: `scene-to-level`.
|
|
36
|
+
- Designing layout, pacing and encounters on paper: `design-level`.
|
|
37
|
+
- One asset: `prop-model`, `environment-kit`, `organic-model`.
|
|
38
|
+
- Only picking a style: `concept-art`, `art-direction`.
|
|
39
|
+
|
|
40
|
+
## Ask these before you build
|
|
41
|
+
|
|
42
|
+
Ask in batches of two or three, not all at once. Record the answers in the
|
|
43
|
+
design doc. Each line says why it matters and what broke when it was not
|
|
44
|
+
asked.
|
|
45
|
+
|
|
46
|
+
**Theme and fantasy**
|
|
47
|
+
- [ ] What is this place, who owns it, what is the player there? *Drives every
|
|
48
|
+
prop and material choice. "A drill yard where players are guests" gave
|
|
49
|
+
the map its whole prop list.*
|
|
50
|
+
- [ ] Which reference frames are the bar? Show 3-4 generated options and get
|
|
51
|
+
a pick. *A god power built from a text brief was rejected twice; three
|
|
52
|
+
concept images got a clear pick in one reply.*
|
|
53
|
+
|
|
54
|
+
**Layout and gameplay**
|
|
55
|
+
- [ ] What layout stays, what may change? May colliders, spawns and zones
|
|
56
|
+
move? *Decides whether you must recompile server collision and update
|
|
57
|
+
tests.*
|
|
58
|
+
- [ ] Which surfaces are walkable, lethal, or "risky perches"? Where are the
|
|
59
|
+
ring-outs? *Fall zones need their own checks.*
|
|
60
|
+
- [ ] Should dynamic events (moving hazards, raised platforms, collapsing
|
|
61
|
+
walls) feel big and slow or quick? Should the warning show where it lands?
|
|
62
|
+
*The first sliding-hazard warning drew the whole path on the floor; the
|
|
63
|
+
user found it too easy to dodge.*
|
|
64
|
+
- [ ] What should the fight feel like? *"A battle for the high ground" turned
|
|
65
|
+
a vague light platform into layered plates with jump routes.*
|
|
66
|
+
|
|
67
|
+
**Quality and readability**
|
|
68
|
+
- [ ] What is the quality bar for close-ups? *Users inspect props at arm's
|
|
69
|
+
length: flat untextured parts, floating chains and sticks clipping
|
|
70
|
+
surfaces all got flagged.*
|
|
71
|
+
- [ ] What must stay readable? Set a number (we used: player silhouettes keep
|
|
72
|
+
at least 60% of clean brightness under every effect).
|
|
73
|
+
- [ ] How dark or saturated may effects get? *"Dark and evil, red only in thin
|
|
74
|
+
veins" was a rule we had to learn after a too-red pass.*
|
|
75
|
+
|
|
76
|
+
**Platform and runtime**
|
|
77
|
+
- [ ] Target hardware and platforms (mobile? integrated laptops?) and frame
|
|
78
|
+
budget. *Measure early; one decorative set cost a quarter of all triangles.*
|
|
79
|
+
- [ ] Does the map run online? What does the online build strip? *Our online
|
|
80
|
+
map build removed particle nodes and ran no map scripts.*
|
|
81
|
+
- [ ] What must be baked versus procedural? (Baked = no CPU, cannot react;
|
|
82
|
+
procedural = can aim and track.) *The floating statue had to be baked; the
|
|
83
|
+
god hands had to aim procedurally.*
|
|
84
|
+
|
|
85
|
+
**Rules and process**
|
|
86
|
+
- [ ] Game rules that limit design (rewards, odds, trading, licences)? Which
|
|
87
|
+
files are off-limits to you?
|
|
88
|
+
- [ ] Deadlines and demos? *Before a demo: stop background work, commit only
|
|
89
|
+
verified lanes, keep fallbacks.*
|
|
90
|
+
- [ ] Commit, push and PR policy.
|
|
91
|
+
|
|
92
|
+
## The pipeline
|
|
93
|
+
|
|
94
|
+
### 1. Frames first
|
|
95
|
+
|
|
96
|
+
Generate several cheap options with `assets.generate_image` (see
|
|
97
|
+
`concept-art`): an aerial overview, eye level, one per hero element. Get a
|
|
98
|
+
pick. Save the picked frames in the repo next to the design doc and check
|
|
99
|
+
every lane's renders against them. When a lane stalls on taste, generate
|
|
100
|
+
three directions for that element and ask again; do not iterate blind.
|
|
101
|
+
|
|
102
|
+
### 2. Design doc
|
|
103
|
+
|
|
104
|
+
One markdown file per map: theme, layout and what is kept, floor, walls,
|
|
105
|
+
backdrop, props, materials rule, effects, dynamic events, performance
|
|
106
|
+
budget, open questions. Every user answer goes in. Lanes read it; you
|
|
107
|
+
update it when the user changes direction.
|
|
108
|
+
|
|
109
|
+
### 3. Blockout
|
|
110
|
+
|
|
111
|
+
Rough geometry for everything at final scale, with a visible "not final"
|
|
112
|
+
material. Remaining blockout material is the to-do list. Keep a stand-in
|
|
113
|
+
player capsule for scale in every render.
|
|
114
|
+
|
|
115
|
+
### 4. Lanes
|
|
116
|
+
|
|
117
|
+
Split by system, one owner each:
|
|
118
|
+
|
|
119
|
+
| Lane | Owns |
|
|
120
|
+
|---|---|
|
|
121
|
+
| Floor | ground materials, inlays, spawn floors |
|
|
122
|
+
| Walls / kit | modular kit, ring or room assembly, wall collision |
|
|
123
|
+
| Backdrop | sky, distant terrain, clouds, fog, kill height |
|
|
124
|
+
| Props | cover pieces, set dressing, shared material library |
|
|
125
|
+
| Cloth | banners and flags with sway |
|
|
126
|
+
| Lighting and effects | sun, fire, glows, corruption-style map states |
|
|
127
|
+
| Events | dynamic hazards, their visuals, spec for the server |
|
|
128
|
+
|
|
129
|
+
The map scene is shared: every lane edits it only through the live editor,
|
|
130
|
+
saves only its own changes, and reports what it touched. See "Running it
|
|
131
|
+
with parallel agents" below.
|
|
132
|
+
|
|
133
|
+
### 5. Materials rule
|
|
134
|
+
|
|
135
|
+
No flat, unshaded surface on any model. Every surface gets real PBR textures
|
|
136
|
+
or procedural detail. Specific rules that came from user feedback:
|
|
137
|
+
|
|
138
|
+
- Bake a cavity/edge mask per prop, and scale edge wear by part thickness:
|
|
139
|
+
thin bars and chain links read as clean grey plastic otherwise.
|
|
140
|
+
- Wood: plank UVs at real scale, grain along each board's long axis, darker
|
|
141
|
+
end grain, grime in the joints. Triplanar noise reads as cork.
|
|
142
|
+
- Forged iron near black, rough (0.6-0.8) so curved bands do not mirror the
|
|
143
|
+
sky; rust only in recesses.
|
|
144
|
+
- Brass: dark tarnish base, polish only on high points and real wear.
|
|
145
|
+
- One shared material library for the map; props reuse it.
|
|
146
|
+
|
|
147
|
+
### 6. Verify every lane with renders
|
|
148
|
+
|
|
149
|
+
After each change, render fixed angles: the user's own angle if they sent a
|
|
150
|
+
screenshot, eye level from the play space, a far view, from above. Open the
|
|
151
|
+
images for the user. Compare to the frames. A lane is done when its renders
|
|
152
|
+
pass, not when its script ran.
|
|
153
|
+
|
|
154
|
+
### 7. Keep gameplay in step
|
|
155
|
+
|
|
156
|
+
After any collider, spawn or zone change: recompile the server collision
|
|
157
|
+
artifact, update tests that hard-code positions, run the covering tests,
|
|
158
|
+
and only then commit. Moving a structure means re-running everything placed
|
|
159
|
+
relative to it (see the reference file).
|
|
160
|
+
|
|
161
|
+
### 8. Commit per verified lane
|
|
162
|
+
|
|
163
|
+
Commit each lane when its renders and tests pass. Stage only that lane's
|
|
164
|
+
files. Never commit files the editor rewrites on its own unless you meant to
|
|
165
|
+
change them.
|
|
166
|
+
|
|
167
|
+
## Hard-won technical rules
|
|
168
|
+
|
|
169
|
+
Short list; details and reasons in
|
|
170
|
+
[references/technical-rules.md](references/technical-rules.md).
|
|
171
|
+
|
|
172
|
+
1. Never run heavy or reloading scripts in the live editor (recoding
|
|
173
|
+
shaders, reloading scenes, instantiating or freeing what an open scene
|
|
174
|
+
uses). It hung and crashed the editor. Build headless; import named files.
|
|
175
|
+
2. Render previews from a separate short-lived engine process that loads
|
|
176
|
+
from disk; call `RenderingServer.force_draw()` before reading the image.
|
|
177
|
+
3. One heavy process at a time, at low priority. Stop everything for demos.
|
|
178
|
+
4. Online builds may strip particle nodes and map scripts. Make fire, sparks
|
|
179
|
+
and motes from shader-driven meshes; bake map animation into vertex
|
|
180
|
+
animation textures and set `custom_aabb`.
|
|
181
|
+
5. Edit an open scene only through the live editor; never text-edit it on
|
|
182
|
+
disk while it is open.
|
|
183
|
+
6. The editor rewrites some project files on its own. Commit surgically.
|
|
184
|
+
7. Keep a fallback scene when swapping in an experimental asset.
|
|
185
|
+
8. Generated 3D models need cleanup and a notices entry; third-party
|
|
186
|
+
textures need their source and licence recorded.
|
|
187
|
+
9. Modular kits: zero coplanar overlaps, sealed seams, no see-through holes.
|
|
188
|
+
10. Measure render cost early: triangles, draw calls, shadow casters, lights.
|
|
189
|
+
|
|
190
|
+
## Running it with parallel agents
|
|
191
|
+
|
|
192
|
+
- One lane per agent, with the files it owns written down. Shared files (the
|
|
193
|
+
map scene, a shared material library) have one owner per change.
|
|
194
|
+
- Agents report with renders and exact file lists; the coordinator opens the
|
|
195
|
+
renders, checks them against the frames, and commits per lane.
|
|
196
|
+
- Relay user feedback with concrete fixes ("thin parts read as grey plastic:
|
|
197
|
+
scale edge wear by thickness"), not the raw complaint alone.
|
|
198
|
+
- When an agent cannot do something (a permission check blocked it), ask the
|
|
199
|
+
user; do not route around it.
|
|
200
|
+
- Keep the machine cool: one heavy job at a time across all agents.
|
|
201
|
+
- Before a demo: tell every agent to stop, commit only verified work, and
|
|
202
|
+
keep experiments out of the map.
|
|
203
|
+
|
|
204
|
+
See `dispatching-parallel-agents` for the general pattern.
|
|
205
|
+
|
|
206
|
+
## Definition of polished
|
|
207
|
+
|
|
208
|
+
- [ ] Every surface has a real material; no blockout material left.
|
|
209
|
+
- [ ] No floating, clipping or interpenetrating parts at close range
|
|
210
|
+
(chains, cloth, props on floors, decals on walls).
|
|
211
|
+
- [ ] Renders from all fixed angles match the reference frames.
|
|
212
|
+
- [ ] Players stay readable under every effect and event.
|
|
213
|
+
- [ ] Spawns are centred, symmetric where the mode needs it, and face play.
|
|
214
|
+
- [ ] Collision matches the visuals (within a few cm); server collision
|
|
215
|
+
recompiled; tests pass.
|
|
216
|
+
- [ ] Fall zones kill, safe zones are safe, nothing catches falling players.
|
|
217
|
+
- [ ] Works with the online build's limits (no particles or scripts if
|
|
218
|
+
stripped).
|
|
219
|
+
- [ ] Render cost measured, biggest offenders known, low-end notes written.
|
|
220
|
+
- [ ] Third-party sources and generated assets recorded in the notices.
|
|
221
|
+
- [ ] Design doc matches what shipped.
|
|
222
|
+
|
|
223
|
+
## Common mistakes
|
|
224
|
+
|
|
225
|
+
- Building a hero effect before agreeing its look. Generate options first.
|
|
226
|
+
- Splitting or regenerating a kit piece and overwriting the repo copy before
|
|
227
|
+
the scene that uses it is updated: parts vanish in the live map.
|
|
228
|
+
- Fixing one banner when all banners share the cause. Check the whole set.
|
|
229
|
+
- Calling a lane done from a headless log. Open a render.
|
|
230
|
+
- Moving a room and forgetting the decals, banners, rock and spawns placed
|
|
231
|
+
around it.
|
|
232
|
+
|
|
233
|
+
## See also
|
|
234
|
+
|
|
235
|
+
- `concept-art`, `art-direction`, `design-level`, `scene-to-level`
|
|
236
|
+
- `environment-kit`, `fabricating-assets`, `prop-model`, `tileable-texture`
|
|
237
|
+
- `3d-lighting`, `vfx-fire`, `vfx-dissolve`, `procedural-animation`
|
|
238
|
+
- `headless-scripting`, `bounded-engine-runs`, `verifying-scenes`
|
|
239
|
+
- `tune-performance`, `dispatching-parallel-agents`
|
|
240
|
+
|
|
241
|
+
<!-- shell-commands: generated from the operation catalog by npm run generate:registry; do not edit by hand -->
|
|
242
|
+
## From a shell
|
|
243
|
+
|
|
244
|
+
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.
|
|
245
|
+
|
|
246
|
+
| In this skill | Command |
|
|
247
|
+
|---|---|
|
|
248
|
+
| `summer_assets_generate_3d` | `summer assets generate-3d` |
|
|
249
|
+
| `assets.generate_image`, `summer_assets_generate_image` | `summer assets generate-image` |
|
|
250
|
+
| `summer_get_diagnostics` | `summer engine get-diagnostics` |
|
|
251
|
+
| `summer_get_scene_tree` | `summer engine get-scene-tree` |
|
|
252
|
+
| `summer_get_script_errors` | `summer engine get-script-errors` |
|
|
253
|
+
| `summer_inspect_node` | `summer engine inspect-node` |
|
|
254
|
+
| `summer_save_scene` | `summer engine save-scene` |
|
|
255
|
+
| `summer_screenshot` | `summer engine screenshot` |
|
|
256
|
+
| `summer_set_prop` | `summer engine set-prop` |
|
|
257
|
+
| `summer_jobs_wait` | `summer jobs wait` |
|
|
258
|
+
<!-- /shell-commands -->
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
# concept-to-level: technical rules in detail
|
|
2
|
+
|
|
3
|
+
Each rule says what to do, why, and what went wrong without it. They come
|
|
4
|
+
from one long 3D arena build in Summer Engine with several agents working
|
|
5
|
+
on one map.
|
|
6
|
+
|
|
7
|
+
## The live editor
|
|
8
|
+
|
|
9
|
+
**Do not run heavy or reloading scripts in the live editor.** Recoding a
|
|
10
|
+
shader, reloading a scene, or instantiating and freeing a scene that an open
|
|
11
|
+
tab uses can hang the editor's main thread or crash it. We lost the editor
|
|
12
|
+
twice to a clearance checker run inside it, and once more to a script that
|
|
13
|
+
re-set shader code to refresh the cache ("Attempted to free invalid ID"
|
|
14
|
+
spam, main thread stuck). Use the editor for small property edits and
|
|
15
|
+
saves. Build meshes, bake data and run checks headless (see
|
|
16
|
+
`headless-scripting`), then let the editor import the named files.
|
|
17
|
+
|
|
18
|
+
**The editor keeps old shaders cached.** After a shader file changes on
|
|
19
|
+
disk, the open editor may still draw the old version. Do not force a reload
|
|
20
|
+
there; render from a fresh process instead.
|
|
21
|
+
|
|
22
|
+
**Edit an open scene only through the live editor.** If you text-edit the
|
|
23
|
+
`.tscn` on disk while it is open, the editor overwrites your change on its
|
|
24
|
+
next save, or saves its stale copy over yours. The reverse also happens:
|
|
25
|
+
pressing Play can save a stale open tab and resurrect deleted nodes. Close
|
|
26
|
+
tabs you are not editing.
|
|
27
|
+
|
|
28
|
+
**The editor rewrites some files on its own** (the project settings file,
|
|
29
|
+
some scenes and resources it touches on load). Check `git diff` before every
|
|
30
|
+
commit and stage only what you meant to change. To change one line of such a
|
|
31
|
+
file, build the commit content from the last commit plus that line rather
|
|
32
|
+
than staging the editor's whole rewrite.
|
|
33
|
+
|
|
34
|
+
## Rendering previews
|
|
35
|
+
|
|
36
|
+
**Render from a separate, short-lived engine process** that loads the map
|
|
37
|
+
from disk, takes the frames, and exits. It sees the current shaders and
|
|
38
|
+
meshes, cannot disturb the editor, and frees its memory when done.
|
|
39
|
+
|
|
40
|
+
**Call `RenderingServer.force_draw()` before reading the viewport image.**
|
|
41
|
+
Without it, later frames can come back identical to an earlier one when the
|
|
42
|
+
window stops drawing in the background.
|
|
43
|
+
|
|
44
|
+
**Watch for in-game UI covering the camera.** A level script may open a menu
|
|
45
|
+
(class select, lobby) that hides the scene. Render the scene with that
|
|
46
|
+
script disabled, or from an isolated viewport.
|
|
47
|
+
|
|
48
|
+
**Fixed angles.** Keep a small set of saved cameras per map: overview, eye
|
|
49
|
+
level from each spawn, each hero element close, from above. Reuse them so
|
|
50
|
+
before and after renders are comparable.
|
|
51
|
+
|
|
52
|
+
## Load
|
|
53
|
+
|
|
54
|
+
One heavy process at a time across all agents (imports, Blender, headless
|
|
55
|
+
runs, renders), at low priority. The machine overheating or the editor
|
|
56
|
+
freezing during a demo costs more than the time saved. See
|
|
57
|
+
`bounded-engine-runs` for time limits and muted runs.
|
|
58
|
+
|
|
59
|
+
## Online constraints
|
|
60
|
+
|
|
61
|
+
Check what the online build does to a map scene before designing effects.
|
|
62
|
+
In our project the online client rebuilt the map's visuals, turned any node
|
|
63
|
+
whose type contains "Particles" into a plain node, and ran no map scripts.
|
|
64
|
+
Consequences:
|
|
65
|
+
|
|
66
|
+
- Fire, sparks, smoke, motes: camera-facing mesh layers driven by shaders,
|
|
67
|
+
with soft depth fades. No particle nodes.
|
|
68
|
+
- Animated set pieces (a statue floating against taut chains): bake the
|
|
69
|
+
motion into a vertex animation texture and play it in the vertex shader.
|
|
70
|
+
Set `custom_aabb` so the moving mesh is not culled. Zero CPU.
|
|
71
|
+
- Dynamic events: the server owns the state (timings, collision on or off);
|
|
72
|
+
a client presenter drives the shader parameters from that state. Write the
|
|
73
|
+
spec for the server with timings in ticks and the exact collision bodies.
|
|
74
|
+
- Lights survive, so cheap flickering lights are fine.
|
|
75
|
+
|
|
76
|
+
## Baked versus procedural
|
|
77
|
+
|
|
78
|
+
Bake what only needs to loop (statue, cloth idle). Make procedural what must
|
|
79
|
+
aim or react: god hands that point their beams at a moving target need an
|
|
80
|
+
aim layer (look-at or two-bone IK with damped, slightly overshooting motion)
|
|
81
|
+
on top of the base pose, with one API all events call.
|
|
82
|
+
|
|
83
|
+
## Fallbacks
|
|
84
|
+
|
|
85
|
+
When you swap an experimental asset into the map (the floating statue), keep
|
|
86
|
+
the previous scene file and say how to swap back. Do not swap untested
|
|
87
|
+
assets in right before a demo unless the user asks.
|
|
88
|
+
|
|
89
|
+
## Generated and third-party assets
|
|
90
|
+
|
|
91
|
+
Generated 3D models need cleanup: decimate to a budget, check normals and
|
|
92
|
+
inside-out meshes, merge or split parts deliberately, ground them on their
|
|
93
|
+
support, give every surface a real material (a chain that rendered white
|
|
94
|
+
had lost its material on import). Record each in the notices file with the
|
|
95
|
+
tool named and its terms marked "not confirmed" until checked.
|
|
96
|
+
|
|
97
|
+
Every third-party texture: source page, author, licence, download date,
|
|
98
|
+
what was changed. Never guess a licence.
|
|
99
|
+
|
|
100
|
+
## Modular kits
|
|
101
|
+
|
|
102
|
+
After every kit rebuild check: zero coplanar overlapping faces, all seams
|
|
103
|
+
welded (no gaps where pieces meet), a see-through scan with rays from inside
|
|
104
|
+
the play space, and the collision against the visible faces (within a few
|
|
105
|
+
cm). Rebuilds can change random block tones and baked shading on pieces you
|
|
106
|
+
did not mean to change: compare against the committed version and restore.
|
|
107
|
+
|
|
108
|
+
When splitting a kit piece out (to make it removable), copy its triangles
|
|
109
|
+
out of the exported files instead of regenerating it, prove the split looks
|
|
110
|
+
identical, and install the new pieces and the scene that uses them together.
|
|
111
|
+
Overwriting a repo piece first made parts of the live map vanish.
|
|
112
|
+
|
|
113
|
+
## Moving things
|
|
114
|
+
|
|
115
|
+
Moving a room or structure moves the job, not one node. Re-run or re-check
|
|
116
|
+
everything placed relative to it: decals (snap to the actual surface, drop
|
|
117
|
+
what no longer fits), banners and their hooks, backdrop rock under it,
|
|
118
|
+
spawn markers, collision, lights. Re-measure clearances, including cloth at
|
|
119
|
+
full sway against the floor below.
|
|
120
|
+
|
|
121
|
+
## Gameplay sync
|
|
122
|
+
|
|
123
|
+
After a collider, spawn or zone change: recompile the server's collision
|
|
124
|
+
artifact, update tests that hard-code positions, run the rules tests and the
|
|
125
|
+
contract check, and read their PASS lines. Spawns: centred on the axis,
|
|
126
|
+
mirrored exactly between teams (an exact 180 degree turn, not 180.56),
|
|
127
|
+
evenly spaced, facing the play space.
|
|
128
|
+
|
|
129
|
+
## Render cost
|
|
130
|
+
|
|
131
|
+
Count early and after each lane: vertices, triangles, mesh instances, draw
|
|
132
|
+
calls, shadow-casting surfaces, lights (and which cast shadows), decals.
|
|
133
|
+
Know the biggest offenders by group. In our map, eight decorative figures
|
|
134
|
+
seen only through bars were a quarter of all triangles; the fix was a
|
|
135
|
+
low-end note to hide them and a planned decimation. Typical cuts: decimate
|
|
136
|
+
hidden detail, merge kit pieces into fewer draws, no shadows on small
|
|
137
|
+
props, shorter sun shadow distance, half-resolution post effects.
|
|
138
|
+
|
|
139
|
+
## Dynamic events
|
|
140
|
+
|
|
141
|
+
- Agree the feel first: scale, speed, how long it stays, what the warning
|
|
142
|
+
reveals. Big things move slowly, with anticipation and a held impact.
|
|
143
|
+
- Telegraph fairly but not too precisely: a warning that draws the exact
|
|
144
|
+
path is too easy to dodge.
|
|
145
|
+
- Check the event never makes the play space impassable and never kills
|
|
146
|
+
without warning.
|
|
147
|
+
- Make what the player sees match what happens: a hole that is open in the
|
|
148
|
+
collision but painted over by a glow reads as solid floor.
|
|
149
|
+
- In a showcase or demo loop, reset destroyed pieces so the effect can be
|
|
150
|
+
watched again.
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
id: skill/concept-to-level
|
|
2
|
+
kind: skill
|
|
3
|
+
version: 1.0.1
|
|
4
|
+
summary: "Take a 3D map from concept art to a shippable level: questions for the user, owned lanes, render checks, collision kept in step."
|
|
5
|
+
use_when:
|
|
6
|
+
- polishing a 3D map or arena from concept art to shipping quality, with real materials, props, sky and effects
|
|
7
|
+
- reworking a level's theme and art while keeping its gameplay layout, with several agents working on one map
|
|
8
|
+
- deciding which questions to ask the user before building or polishing a level
|
|
9
|
+
do_not_use_when:
|
|
10
|
+
- a quick 2D or playable scene from one reference image — skill/scene-to-level
|
|
11
|
+
- designing layout, pacing and encounters on paper — skill/design-level
|
|
12
|
+
- generating a single prop or kit — skill/prop-model or skill/environment-kit
|
|
13
|
+
facets:
|
|
14
|
+
lifecycle:
|
|
15
|
+
- build
|
|
16
|
+
domains:
|
|
17
|
+
- level-design
|
|
18
|
+
- 3d
|
|
19
|
+
- world-building
|
|
20
|
+
- agent-workflow
|
|
21
|
+
modalities:
|
|
22
|
+
- scenes
|
|
23
|
+
- assets
|
|
24
|
+
- shaders
|
|
25
|
+
- docs
|
|
26
|
+
compatibility:
|
|
27
|
+
engine: ">=4.6"
|
|
28
|
+
related:
|
|
29
|
+
skills:
|
|
30
|
+
- skill/concept-art
|
|
31
|
+
- skill/art-direction
|
|
32
|
+
- skill/design-level
|
|
33
|
+
- skill/scene-to-level
|
|
34
|
+
- skill/environment-kit
|
|
35
|
+
- skill/fabricating-assets
|
|
36
|
+
- skill/headless-scripting
|
|
37
|
+
- skill/bounded-engine-runs
|
|
38
|
+
- skill/verifying-scenes
|
|
39
|
+
- skill/tune-performance
|
|
40
|
+
- skill/dispatching-parallel-agents
|
|
41
|
+
source: official
|
|
42
|
+
license: MIT
|
|
43
|
+
status: preview
|
|
44
|
+
recommended: false
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: create-asset-sheet
|
|
3
|
-
description: "Generate a pack of 2D
|
|
3
|
+
description: "Generate a pack of 2D assets from one prompt (tile sheet, UI kit, character pack, biome), sliced."
|
|
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_slice_sheet summer_assets_search summer_import_asset_by_id summer_import_from_url summer_import_from_url_batch summer_call
|
|
9
9
|
paths: ["assets/**", "art/**", "sprites/**"]
|
|
10
10
|
---
|
|
11
11
|
|
|
@@ -42,7 +42,7 @@ Categories the classifier outputs (used to route into downstream pipelines):
|
|
|
42
42
|
|
|
43
43
|
## The cleanest path: the studio wizard
|
|
44
44
|
|
|
45
|
-
The most reliable way to run this flow is the **Create Asset Sheet** wizard in Summer Studio's guided workflows. Open it for the user with `summer open workflows` (or `
|
|
45
|
+
The most reliable way to run this flow is the **Create Asset Sheet** wizard in Summer Studio's guided workflows. Open it for the user with `summer open workflows` (or `studio.open`) if they're working in the browser. The wizard:
|
|
46
46
|
|
|
47
47
|
- Offers a 2D / 3D mode toggle (2D is the slice flow described here; 3D is a soft pointer to `concept-art` + per-asset image-to-3D for now)
|
|
48
48
|
- Surfaces six prompt templates (tile sheet, UI kit, menu, character pack, biome, freeform)
|
|
@@ -58,31 +58,32 @@ calls the same server-side slicer as the Studio wizard.
|
|
|
58
58
|
## Programmatic path (chat / agent driving the engine)
|
|
59
59
|
|
|
60
60
|
1. **Load the exact current recipe.** Call
|
|
61
|
-
`
|
|
61
|
+
`summer_call({op: "docs.workflows", input: {workflowId: "asset-pack"}})`. Follow its ordered
|
|
62
62
|
steps and report any `manual` handoff instead of pretending it ran.
|
|
63
63
|
|
|
64
|
-
2. **Generate the sheet.** Call `
|
|
64
|
+
2. **Generate the sheet.** Call `assets.generate_image` with a prompt like:
|
|
65
65
|
|
|
66
66
|
```
|
|
67
67
|
<theme> asset sheet: <comma-separated list of items>. Each item isolated with empty space around it, transparent or neutral background.
|
|
68
68
|
```
|
|
69
69
|
|
|
70
70
|
- Pick model by style: pixel art → `grok-imagine`, painterly / illustrative / structured grids → `gpt-image-2`.
|
|
71
|
-
- 1024x1024 is the sweet spot. Larger sheets fragment in the slicer when individual assets get below ~64px.
|
|
71
|
+
- Square (`aspectRatio: "1:1"`, the default, about 1024x1024) is the sweet spot. Larger sheets fragment in the slicer when individual assets get below ~64px.
|
|
72
72
|
- Keep the asset list to 6–20 items per sheet. Past 20, model attention degrades and slices get muddy.
|
|
73
73
|
|
|
74
74
|
3. **Slice, remove background, detect, name, classify, crop, and save.** Pass
|
|
75
75
|
the returned image asset id to:
|
|
76
76
|
|
|
77
77
|
```
|
|
78
|
-
|
|
78
|
+
assets.slice_sheet({ assetId: "<generated asset id>" })
|
|
79
79
|
```
|
|
80
80
|
|
|
81
|
-
This is the same cloud slicing pipeline used by the Studio flow.
|
|
82
|
-
|
|
83
|
-
locally.
|
|
81
|
+
This is the same cloud slicing pipeline used by the Studio flow. It answers
|
|
82
|
+
`slices` (each with `url`, `name`, `category`, `bbox`) and `source`; keep the
|
|
83
|
+
names and categories, and do not reimplement the vision boxes locally. Slicing
|
|
84
|
+
spends credits: `dryRun: true` shows how many.
|
|
84
85
|
|
|
85
|
-
4. **Optional upscale.** The Studio wizard has per-slice HD upscale. Over MCP, for any crop where the longest side is under 256px, call `
|
|
86
|
+
4. **Optional upscale.** The Studio wizard has per-slice HD upscale. Over MCP, for any crop where the longest side is under 256px, call `assets.generate_image` with the slice `url` as `referenceImageUrl` and this prompt:
|
|
86
87
|
|
|
87
88
|
```
|
|
88
89
|
Recreate this exact <name> at high resolution. Preserve every detail, the exact pose, the exact style. Sharper edges, more detail. Transparent background. Single isolated asset, no scene.
|
|
@@ -90,8 +91,9 @@ calls the same server-side slicer as the Studio wizard.
|
|
|
90
91
|
|
|
91
92
|
- Don't upscale everything: each upscale is a paid generation, and large slices gain little.
|
|
92
93
|
|
|
93
|
-
5. **Import what the game needs.**
|
|
94
|
-
|
|
94
|
+
5. **Import what the game needs.** The slices are image URLs, not assets: import
|
|
95
|
+
them with `summer_import_from_url_batch` (upscaled ones by their `assetId` with
|
|
96
|
+
`summer_import_asset_by_id`). Keep the source pack in My Assets so the agent
|
|
95
97
|
and the human Studio session see the same result.
|
|
96
98
|
|
|
97
99
|
## Prompt patterns that work
|
|
@@ -137,6 +139,10 @@ calls the same server-side slicer as the Studio wizard.
|
|
|
137
139
|
| Upscaled slice looks invented | Source was too small / too ambiguous | Don't upscale slices below ~32×32. Or accept the hallucination and edit |
|
|
138
140
|
| Detection returns wrong category | Model misjudged context | User can override in the review step; not a blocker |
|
|
139
141
|
|
|
142
|
+
## Without Summer Engine
|
|
143
|
+
|
|
144
|
+
In a session without Summer Engine tools (the assets profile; the `summer-assets` skill has the whole loop), the studio wizard path works as written. On the programmatic path, stop after `assets.slice_sheet` and skip `summer_import_asset_by_id`: save each piece where the person asked with `assets.get` and `out` (the `summer-assets` skill says how), and tell them the paths.
|
|
145
|
+
|
|
140
146
|
## What this skill does NOT do (yet)
|
|
141
147
|
|
|
142
148
|
- Per-asset planning and individual generation, where each asset is generated separately at full resolution.
|
|
@@ -144,3 +150,21 @@ calls the same server-side slicer as the Studio wizard.
|
|
|
144
150
|
- Character animation routing. Once a slice is classified as `character`, the next step (sprite-sheet generation) is a separate skill that the user has to invoke manually.
|
|
145
151
|
- Terrain auto-tiling / Wang-tile generation. Use `tileable-texture` for that.
|
|
146
152
|
- Level composition / scene assembly. Use `design-level`.
|
|
153
|
+
|
|
154
|
+
<!-- shell-commands: generated from the operation catalog by npm run generate:registry; do not edit by hand -->
|
|
155
|
+
## From a shell
|
|
156
|
+
|
|
157
|
+
No Summer MCP tools in this session? Run each one as a command; when `summer --version` is missing or below 4.0, use `npx -y summer-engine@latest` in place of `summer`. Fields are flags in kebab-case (`--scene-path res://main.tscn`) or one `--input '<json>'`, and `summer ops describe <op>` prints the exact input. The `summer-cli` skill has the rest.
|
|
158
|
+
|
|
159
|
+
| In this skill | Command |
|
|
160
|
+
|---|---|
|
|
161
|
+
| `assets.generate_image`, `summer_assets_generate_image` | `summer assets generate-image` |
|
|
162
|
+
| `assets.get` | `summer assets get` |
|
|
163
|
+
| `summer_assets_search` | `summer assets search` |
|
|
164
|
+
| `assets.slice_sheet`, `summer_assets_slice_sheet` | `summer assets slice-sheet` |
|
|
165
|
+
| `docs.workflows` | `summer docs workflows` |
|
|
166
|
+
| `summer_import_asset_by_id` | `summer engine import-asset-by-id` |
|
|
167
|
+
| `summer_import_from_url` | `summer engine import-from-url` |
|
|
168
|
+
| `summer_import_from_url_batch` | `summer engine import-from-url-batch` |
|
|
169
|
+
| `studio.open` | `summer studio open` |
|
|
170
|
+
<!-- /shell-commands -->
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
id: skill/create-asset-sheet
|
|
2
2
|
kind: skill
|
|
3
3
|
version: 1.0.3
|
|
4
|
-
summary: Generate a pack of 2D
|
|
4
|
+
summary: "Generate a pack of 2D assets from one prompt (tile sheet, UI kit, character pack, biome), sliced."
|
|
5
5
|
use_when:
|
|
6
6
|
- generating a pack of 2D game assets from a single prompt — a tile sheet, UI kit, menu screen, character pack, or biome set
|
|
7
7
|
- many matching sprites, tiles, or UI pieces are needed in one consistent style at once
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: debug
|
|
3
|
-
description: "Disciplined bug
|
|
3
|
+
description: "Disciplined bug, crash and error loop: script errors, console, debugger, hypothesis, fix, verify."
|
|
4
4
|
license: MIT
|
|
5
5
|
compatibility: [Cursor, Claude Code, Codex, Windsurf, Gemini, OpenCode]
|
|
6
6
|
category: debugging
|
|
@@ -143,7 +143,7 @@ Surface the proposed fix in plain language and ask permission. Two patterns:
|
|
|
143
143
|
|
|
144
144
|
- For GDScript edits: `Read` the 20–40 lines around the error, `Edit` the exact change. Don't read the whole file. Don't reformat. Don't rename other things.
|
|
145
145
|
- For scene edits: use the appropriate `summer_*` tool (`summer_add_node`, `summer_set_prop`, `summer_replace_node`). Group multi-step changes in `summer_batch` for one undo step.
|
|
146
|
-
- **Nested resource properties:** `summer_set_resource_property` works against inline `sub_resource` targets too — pass `nodePath`, `resourceProperty`, and `subProperty` (there is no dotted `"mesh.size"` form). Structural failures (`node not found`, `property is not a resource`, `resource is null`) are explicit errors; a bad value shape is not — a JSON object instead of an engine literal string, a misspelled `key`/`subProperty`, or a wrong-typed value returns `ok:true` yet silently no-ops or coerces destructively on current engines (dict → material cleared; dict → `Color(0,0,0,1)`; newer engines reject these with `unknown_property` / `bad_value_shape` / `type_mismatch`). Pass class names and `Color(...)`/`Vector3(...)` strings, and confirm the fix in the saved `.tscn` or a snapshot diff, never from `ok` alone. See
|
|
146
|
+
- **Nested resource properties:** `summer_set_resource_property` works against inline `sub_resource` targets too — pass `nodePath`, `resourceProperty`, and `subProperty` (there is no dotted `"mesh.size"` form). Structural failures (`node not found`, `property is not a resource`, `resource is null`) are explicit errors; a bad value shape is not — a JSON object instead of an engine literal string, a misspelled `key`/`subProperty`, or a wrong-typed value returns `ok:true` yet silently no-ops or coerces destructively on current engines (dict → material cleared; dict → `Color(0,0,0,1)`; newer engines reject these with `unknown_property` / `bad_value_shape` / `type_mismatch`). Pass class names and `Color(...)`/`Vector3(...)` strings, and confirm the fix in the saved `.tscn` or a snapshot diff, never from `ok` alone. See `summer_docs_read` id `reference/mcp-tools-reference`.
|
|
147
147
|
|
|
148
148
|
### 6. Verify — re-run the diagnostic that found it
|
|
149
149
|
|
|
@@ -248,3 +248,35 @@ When you've made code changes and want to declare them "verified":
|
|
|
248
248
|
A typical cautionary scenario: many parallel agents write thousands of lines of game code in one batch with verification static-only. The build is "diagnostic-clean" yet the running game has telegraph meshes that render the wrong axis, parse-valid scripts that crash on first autoload because of a guard pattern that doesn't compile, projectile tracers sized so they read as straight lines instead of projectiles, transform-leaked colliders from a copied scene, and `@onready` paths that throw on every boot when the script is loaded into a sibling scene that lacks one of the referenced children. None of these surface in `summer_get_diagnostics` until something actually plays the game — which is exactly what a `RunVerification` probe does, and why "I had no way to test it" is not an available excuse.
|
|
249
249
|
|
|
250
250
|
Static analysis is necessary but never sufficient.
|
|
251
|
+
|
|
252
|
+
<!-- shell-commands: generated from the operation catalog by npm run generate:registry; do not edit by hand -->
|
|
253
|
+
## From a shell
|
|
254
|
+
|
|
255
|
+
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.
|
|
256
|
+
|
|
257
|
+
| In this skill | Command |
|
|
258
|
+
|---|---|
|
|
259
|
+
| `summer_docs_read` | `summer docs read` |
|
|
260
|
+
| `summer_add_node` | `summer engine add-node` |
|
|
261
|
+
| `summer_batch` | `summer engine batch` |
|
|
262
|
+
| `summer_clear_console` | `summer engine clear-console` |
|
|
263
|
+
| `summer_create_debug_report` | `summer engine create-debug-report` |
|
|
264
|
+
| `summer_game_probe` | `summer engine game-probe` |
|
|
265
|
+
| `summer_get_console` | `summer engine get-console` |
|
|
266
|
+
| `summer_get_debugger_errors` | `summer engine get-debugger-errors` |
|
|
267
|
+
| `summer_get_debugger_warnings` | `summer engine get-debugger-warnings` |
|
|
268
|
+
| `summer_get_diagnostics` | `summer engine get-diagnostics` |
|
|
269
|
+
| `summer_get_runtime_tree` | `summer engine get-runtime-tree` |
|
|
270
|
+
| `summer_get_scene_tree` | `summer engine get-scene-tree` |
|
|
271
|
+
| `summer_get_script_errors` | `summer engine get-script-errors` |
|
|
272
|
+
| `summer_inspect_node` | `summer engine inspect-node` |
|
|
273
|
+
| `summer_inspect_resource` | `summer engine inspect-resource` |
|
|
274
|
+
| `summer_inspect_runtime_node` | `summer engine inspect-runtime-node` |
|
|
275
|
+
| `summer_is_running` | `summer engine is-running` |
|
|
276
|
+
| `summer_play` | `summer engine play` |
|
|
277
|
+
| `summer_replace_node` | `summer engine replace-node` |
|
|
278
|
+
| `summer_screenshot` | `summer engine screenshot` |
|
|
279
|
+
| `summer_set_prop` | `summer engine set-prop` |
|
|
280
|
+
| `summer_set_resource_property` | `summer engine set-resource-property` |
|
|
281
|
+
| `summer_stop` | `summer engine stop` |
|
|
282
|
+
<!-- /shell-commands -->
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
id: skill/debug
|
|
2
2
|
kind: skill
|
|
3
3
|
version: 1.0.4
|
|
4
|
-
summary: Disciplined bug
|
|
4
|
+
summary: "Disciplined bug, crash and error loop: script errors, console, debugger, hypothesis, fix, verify."
|
|
5
5
|
use_when:
|
|
6
6
|
- the user reports a bug, crash, error, or unexpected behavior in a Summer project, before making code or scene changes
|
|
7
7
|
- the player falls through the floor or clips through walls
|