summer-engine 2.8.2 → 3.0.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 +27 -7
- package/.claude-plugin/plugin.json +99 -83
- package/.codex-plugin/plugin.json +112 -82
- package/.cursor-plugin/plugin.json +119 -83
- package/.factory-plugin/plugin.json +100 -3
- package/.mcp.json +6 -1
- package/.opencode/INSTALL.md +7 -4
- package/.opencode/plugins/summer.js +31 -18
- package/AGENTS.md +107 -34
- package/CHANGELOG.md +131 -44
- package/CLAUDE.md +4 -2
- package/GEMINI.md +7 -53
- package/NOTICE +31 -0
- package/README.md +159 -391
- package/assets/api-docs.json.gz +0 -0
- package/assets/autopilot/README.md +20 -6
- package/assets/autopilot/autopilot.gd +80 -26
- package/assets/autopilot/run.sh +132 -7
- package/assets/navigation/web-routes.json +719 -0
- package/commands/gameskill.md +10 -108
- package/commands/summer.md +72 -4
- package/dist/bin/summer.js +6 -87
- package/dist/cli/banner.d.ts +1 -0
- package/dist/cli/banner.js +33 -0
- package/dist/{commands → cli/commands}/config.js +1 -1
- package/dist/cli/commands/create.d.ts +30 -0
- package/dist/cli/commands/create.js +212 -0
- package/dist/{commands → cli/commands}/debug.js +2 -2
- package/dist/cli/commands/doctor.d.ts +2 -0
- package/dist/cli/commands/doctor.js +18 -0
- package/dist/cli/commands/events.d.ts +57 -0
- package/dist/cli/commands/events.js +158 -0
- package/dist/cli/commands/install.d.ts +50 -0
- package/dist/cli/commands/install.js +447 -0
- package/dist/cli/commands/list.js +72 -0
- package/dist/{commands → cli/commands}/login.js +33 -17
- package/dist/{commands → cli/commands}/logout.d.ts +1 -0
- package/dist/cli/commands/logout.js +19 -0
- package/dist/{commands → cli/commands}/memory.d.ts +1 -8
- package/dist/{commands → cli/commands}/memory.js +20 -11
- package/dist/cli/commands/open.d.ts +45 -0
- package/dist/cli/commands/open.js +216 -0
- package/dist/{commands → cli/commands}/plan.js +2 -2
- package/dist/{commands → cli/commands}/publish.js +1 -1
- package/dist/{commands → cli/commands}/releases.js +1 -1
- package/dist/cli/commands/run.d.ts +19 -0
- package/dist/cli/commands/run.js +255 -0
- package/dist/{commands → cli/commands}/setup.js +43 -89
- package/dist/{commands → cli/commands}/skills.js +85 -222
- package/dist/{commands → cli/commands}/status.d.ts +1 -0
- package/dist/cli/commands/status.js +62 -0
- package/dist/cli/commands/tool.d.ts +11 -0
- package/dist/cli/commands/tool.js +121 -0
- package/dist/cli/index.d.ts +6 -0
- package/dist/cli/index.js +89 -0
- package/dist/cli/root-action.d.ts +7 -0
- package/dist/cli/root-action.js +15 -0
- package/dist/{lib → core}/api-client.d.ts +106 -15
- package/dist/{lib → core}/api-client.js +267 -75
- package/dist/{lib → core}/async-op-lifecycle.d.ts +3 -4
- package/dist/{lib → core}/async-op-lifecycle.js +3 -4
- package/dist/{lib → core}/auth.d.ts +14 -6
- package/dist/{lib → core}/auth.js +56 -40
- package/dist/core/capabilities/agent-playbook.d.ts +20 -0
- package/dist/core/capabilities/agent-playbook.js +218 -0
- package/dist/core/capabilities/api-docs.d.ts +36 -0
- package/dist/core/capabilities/api-docs.js +118 -0
- package/dist/core/capabilities/asset-import.d.ts +49 -0
- package/dist/core/capabilities/asset-import.js +134 -0
- package/dist/core/capabilities/camera-view.d.ts +98 -0
- package/dist/core/capabilities/camera-view.js +222 -0
- package/dist/core/capabilities/capture.d.ts +63 -0
- package/dist/core/capabilities/capture.js +67 -0
- package/dist/core/capabilities/console-read.d.ts +17 -0
- package/dist/core/capabilities/console-read.js +21 -0
- package/dist/{lib → core/capabilities}/creator.d.ts +1 -29
- package/dist/{lib → core/capabilities}/creator.js +14 -33
- package/dist/{lib → core/capabilities}/debug-report.d.ts +1 -1
- package/dist/{lib → core/capabilities}/debug-report.js +12 -31
- package/dist/{commands → core/capabilities}/doctor.d.ts +7 -2
- package/dist/{commands → core/capabilities}/doctor.js +47 -73
- package/dist/core/capabilities/engine-fallbacks.d.ts +26 -0
- package/dist/core/capabilities/engine-fallbacks.js +36 -0
- package/dist/core/capabilities/engine-ops.d.ts +33 -0
- package/dist/core/capabilities/engine-ops.js +145 -0
- package/dist/core/capabilities/engine-receipt.d.ts +53 -0
- package/dist/core/capabilities/engine-receipt.js +134 -0
- package/dist/core/capabilities/events.d.ts +200 -0
- package/dist/core/capabilities/events.js +383 -0
- package/dist/core/capabilities/fabricate-mesh.d.ts +111 -0
- package/dist/core/capabilities/fabricate-mesh.js +165 -0
- package/dist/core/capabilities/frame-quality.d.ts +71 -0
- package/dist/core/capabilities/frame-quality.js +449 -0
- package/dist/core/capabilities/game-task-plan.d.ts +66 -0
- package/dist/{lib → core/capabilities}/game-task-plan.js +59 -8
- package/dist/core/capabilities/hdri-import.d.ts +90 -0
- package/dist/core/capabilities/hdri-import.js +250 -0
- package/dist/core/capabilities/image-generation.d.ts +24 -0
- package/dist/core/capabilities/image-generation.js +22 -0
- package/dist/core/capabilities/navigation/open.d.ts +156 -0
- package/dist/core/capabilities/navigation/open.js +567 -0
- package/dist/core/capabilities/navigation/render-product-map.d.ts +1 -0
- package/dist/core/capabilities/navigation/render-product-map.js +84 -0
- package/dist/core/capabilities/navigation/targets.d.ts +87 -0
- package/dist/core/capabilities/navigation/targets.js +250 -0
- package/dist/core/capabilities/play-determinism.d.ts +35 -0
- package/dist/core/capabilities/play-determinism.js +86 -0
- package/dist/core/capabilities/project-context.d.ts +114 -0
- package/dist/core/capabilities/project-context.js +249 -0
- package/dist/core/capabilities/runtime-control.d.ts +540 -0
- package/dist/core/capabilities/runtime-control.js +1011 -0
- package/dist/core/capabilities/scene-kind.d.ts +19 -0
- package/dist/core/capabilities/scene-kind.js +137 -0
- package/dist/core/capabilities/scene-script.d.ts +38 -0
- package/dist/core/capabilities/scene-script.js +45 -0
- package/dist/core/capabilities/tool-dispatch.d.ts +42 -0
- package/dist/core/capabilities/tool-dispatch.js +1490 -0
- package/dist/core/capabilities/ui-control.d.ts +179 -0
- package/dist/core/capabilities/ui-control.js +423 -0
- package/dist/core/capabilities/variant-types.d.ts +22 -0
- package/dist/core/capabilities/variant-types.js +101 -0
- package/dist/core/capability-skew.d.ts +205 -0
- package/dist/core/capability-skew.js +386 -0
- package/dist/{lib → core}/config.d.ts +11 -1
- package/dist/{lib → core}/config.js +13 -2
- package/dist/core/embeddings.d.ts +78 -0
- package/dist/core/embeddings.js +166 -0
- package/dist/core/engine-install.d.ts +105 -0
- package/dist/core/engine-install.js +190 -0
- package/dist/core/engine.d.ts +94 -0
- package/dist/{lib → core}/engine.js +74 -28
- package/dist/core/feedback/client.d.ts +88 -0
- package/dist/core/feedback/client.js +182 -0
- package/dist/{lib → core}/format.d.ts +0 -1
- package/dist/{lib → core}/format.js +1 -1
- package/dist/core/headless/connection.d.ts +86 -0
- package/dist/core/headless/connection.js +97 -0
- package/dist/core/headless/editor-connection.d.ts +26 -0
- package/dist/core/headless/editor-connection.js +81 -0
- package/dist/core/headless/mcp-routing.d.ts +38 -0
- package/dist/core/headless/mcp-routing.js +83 -0
- package/dist/core/headless/registry.d.ts +91 -0
- package/dist/core/headless/registry.js +226 -0
- package/dist/core/headless/resolve.d.ts +46 -0
- package/dist/core/headless/resolve.js +75 -0
- package/dist/core/headless/spawn.d.ts +46 -0
- package/dist/core/headless/spawn.js +205 -0
- package/dist/core/headless/worker-connection.d.ts +96 -0
- package/dist/core/headless/worker-connection.js +353 -0
- package/dist/core/headless/worker-engine-client.d.ts +58 -0
- package/dist/core/headless/worker-engine-client.js +246 -0
- package/dist/core/launch-posture.d.ts +170 -0
- package/dist/core/launch-posture.js +317 -0
- package/dist/core/library-read.d.ts +73 -0
- package/dist/core/library-read.js +279 -0
- package/dist/core/library-search.d.ts +143 -0
- package/dist/core/library-search.js +301 -0
- package/dist/{lib → core}/log-filters.js +4 -2
- package/dist/{lib → core}/mcp-log.js +2 -17
- package/dist/core/package-root.d.ts +9 -0
- package/dist/core/package-root.js +11 -0
- package/dist/core/redact.d.ts +20 -0
- package/dist/core/redact.js +64 -0
- package/dist/core/registry-search.d.ts +167 -0
- package/dist/core/registry-search.js +358 -0
- package/dist/core/skills-registry.d.ts +47 -0
- package/dist/core/skills-registry.js +83 -0
- package/dist/{lib → core}/store.js +11 -7
- package/dist/{lib → core}/summer-compatibility.js +3 -3
- package/dist/{lib → core}/telemetry.js +5 -2
- package/dist/core/templates.d.ts +98 -0
- package/dist/core/templates.js +241 -0
- package/dist/core/tool-errors.d.ts +30 -0
- package/dist/core/tool-errors.js +40 -0
- package/dist/core/trajectory.d.ts +80 -0
- package/dist/core/trajectory.js +307 -0
- package/dist/core/util/http.d.ts +13 -0
- package/dist/core/util/http.js +28 -0
- package/dist/core/util/json.d.ts +12 -0
- package/dist/core/util/json.js +21 -0
- package/dist/core/util/process.d.ts +3 -0
- package/dist/core/util/process.js +13 -0
- package/dist/core/util/sleep.d.ts +1 -0
- package/dist/core/util/sleep.js +3 -0
- package/dist/core/version.d.ts +3 -0
- package/dist/core/version.js +5 -0
- package/dist/{lib → installer}/agent-config.d.ts +20 -1
- package/dist/{lib → installer}/agent-config.js +138 -24
- package/dist/installer/legacy-skills.d.ts +26 -0
- package/dist/installer/legacy-skills.js +53 -0
- package/dist/installer/setup.d.ts +76 -0
- package/dist/installer/setup.js +146 -0
- package/dist/installer/skill-locations.d.ts +45 -0
- package/dist/installer/skill-locations.js +170 -0
- package/dist/installer/version-check.d.ts +174 -0
- package/dist/{lib → installer}/version-check.js +173 -42
- package/dist/{lib/mcp-boot-notice.d.ts → mcp/boot-notice.d.ts} +1 -1
- package/dist/{commands/mcp.js → mcp/command.js} +18 -6
- package/dist/mcp/server.d.ts +23 -3
- package/dist/mcp/server.js +122 -28
- package/dist/mcp/tools/asset-tools.js +62 -142
- package/dist/mcp/tools/creator-tools.js +5 -23
- package/dist/mcp/tools/debug-tools.js +61 -18
- package/dist/mcp/tools/event-tools.d.ts +14 -0
- package/dist/mcp/tools/event-tools.js +41 -0
- package/dist/mcp/tools/fabricate-tools.d.ts +2 -0
- package/dist/mcp/tools/fabricate-tools.js +28 -0
- package/dist/mcp/tools/feedback-tools.d.ts +77 -0
- package/dist/mcp/tools/feedback-tools.js +88 -0
- package/dist/mcp/tools/file-tools.js +6 -53
- package/dist/mcp/tools/generate-tools.js +37 -63
- package/dist/mcp/tools/library-tools.d.ts +11 -0
- package/dist/mcp/tools/library-tools.js +42 -0
- package/dist/mcp/tools/navigation-tools.d.ts +7 -0
- package/dist/mcp/tools/navigation-tools.js +37 -0
- package/dist/mcp/tools/perception-tools.d.ts +20 -0
- package/dist/mcp/tools/perception-tools.js +146 -0
- package/dist/mcp/tools/project-tools.d.ts +14 -0
- package/dist/mcp/tools/project-tools.js +72 -281
- package/dist/mcp/tools/runtime-tools.d.ts +2 -0
- package/dist/mcp/tools/runtime-tools.js +92 -0
- package/dist/mcp/tools/scene-tools.d.ts +3 -0
- package/dist/mcp/tools/scene-tools.js +68 -119
- package/dist/mcp/tools/script-tools.d.ts +3 -0
- package/dist/mcp/tools/script-tools.js +118 -0
- package/dist/mcp/tools/spatial-tools.d.ts +2 -0
- package/dist/mcp/tools/spatial-tools.js +485 -0
- package/dist/mcp/tools/text-json.d.ts +8 -0
- package/dist/mcp/tools/text-json.js +12 -0
- package/dist/mcp/tools/{cloud-tools.d.ts → ui-tools.d.ts} +1 -1
- package/dist/mcp/tools/ui-tools.js +82 -0
- package/dist/mcp/tools/visual-tools.d.ts +2 -7
- package/dist/mcp/tools/visual-tools.js +383 -101
- package/dist/mcp/tools/with-engine.d.ts +9 -15
- package/dist/mcp/tools/with-engine.js +60 -96
- package/dist/project-memory/project-manifest.d.ts +36 -0
- package/dist/project-memory/project-manifest.js +50 -0
- package/dist/project-memory/project-memory.d.ts +57 -0
- package/dist/{lib → project-memory}/project-memory.js +46 -0
- package/gemini-extension.json +103 -2
- package/hooks/hooks-cursor.json +2 -2
- package/hooks/hooks.json +2 -1
- package/hooks/pre-commit-doctor.sh +45 -39
- package/hooks/run-hook.cmd +30 -23
- package/hooks/run-hook.sh +20 -0
- package/hooks/session-start.sh +18 -7
- package/integrations/README.md +70 -0
- package/integrations/claude/README.md +19 -0
- package/integrations/claude/manifest-target.json +16 -0
- package/integrations/cline/README.md +13 -0
- package/integrations/cline/manifest-target.json +3 -0
- package/integrations/codex/README.md +15 -0
- package/integrations/codex/manifest-target.json +5 -0
- package/integrations/cursor/README.md +16 -0
- package/integrations/cursor/manifest-target.json +5 -0
- package/integrations/factory/README.md +26 -0
- package/integrations/factory/manifest-target.json +5 -0
- package/integrations/gemini/README.md +26 -0
- package/integrations/gemini/manifest-target.json +5 -0
- package/integrations/github-copilot/README.md +12 -0
- package/integrations/github-copilot/manifest-target.json +3 -0
- package/integrations/kilo-code/README.md +16 -0
- package/integrations/kilo-code/manifest-target.json +3 -0
- package/integrations/lm-studio/README.md +12 -0
- package/integrations/lm-studio/manifest-target.json +3 -0
- package/integrations/opencode/README.md +15 -0
- package/integrations/opencode/manifest-target.json +3 -0
- package/integrations/roo-code/README.md +13 -0
- package/integrations/roo-code/manifest-target.json +3 -0
- package/integrations/vscode-copilot/README.md +12 -0
- package/integrations/vscode-copilot/manifest-target.json +3 -0
- package/integrations/windsurf/README.md +13 -0
- package/integrations/windsurf/manifest-target.json +3 -0
- package/library/references/collaborative-protocol/resource.yaml +24 -0
- package/library/references/gd-style/resource.yaml +24 -0
- package/{references → library/references/godot-version}/godot-version.md +6 -6
- package/library/references/godot-version/resource.yaml +22 -0
- package/library/references/headless-routing/headless-routing.md +46 -0
- package/library/references/headless-routing/resource.yaml +24 -0
- package/library/references/mcp-fresh-chat-playbook/mcp-fresh-chat-playbook.md +49 -0
- package/library/references/mcp-fresh-chat-playbook/resource.yaml +23 -0
- package/library/references/mcp-tools-reference/mcp-tools-reference.md +271 -0
- package/library/references/mcp-tools-reference/resource.yaml +17 -0
- package/library/references/product-map/product-map.md +103 -0
- package/library/references/product-map/resource.yaml +33 -0
- package/{references → library/references/public-surface-language}/public-surface-language.md +5 -7
- package/library/references/public-surface-language/resource.yaml +17 -0
- package/library/references/summer-folder/resource.yaml +20 -0
- package/{references → library/references/summer-folder}/summer-folder.md +22 -21
- package/{skills/rendering-and-lighting → library/skills}/3d-lighting/SKILL.md +15 -11
- package/library/skills/3d-lighting/resource.yaml +27 -0
- package/{skills/audio → library/skills}/adaptive-music/SKILL.md +1 -1
- package/library/skills/adaptive-music/resource.yaml +28 -0
- package/library/skills/agent-playtesting/SKILL.md +148 -0
- package/library/skills/agent-playtesting/resource.yaml +52 -0
- package/library/skills/ambient-bed/resource.yaml +24 -0
- package/{skills/video → library/skills}/animated-loop/SKILL.md +1 -1
- package/library/skills/animated-loop/resource.yaml +27 -0
- package/{skills/animation → library/skills}/animation-tree/SKILL.md +29 -14
- package/library/skills/animation-tree/resource.yaml +33 -0
- package/{skills/rendering-and-lighting → library/skills}/art-direction/SKILL.md +3 -3
- package/library/skills/art-direction/resource.yaml +29 -0
- package/{skills/asset-pipeline → library/skills}/asset-strategy/SKILL.md +44 -44
- package/library/skills/asset-strategy/resource.yaml +63 -0
- package/{skills/audio → library/skills}/audio-direction/SKILL.md +7 -7
- package/library/skills/audio-direction/resource.yaml +32 -0
- package/library/skills/auto-fire-targeting/resource.yaml +22 -0
- package/{skills/scene-and-project → library/skills}/brainstorm-game/SKILL.md +8 -8
- package/library/skills/brainstorm-game/resource.yaml +30 -0
- package/{skills/workflow → library/skills}/brainstorming/SKILL.md +2 -22
- package/library/skills/brainstorming/resource.yaml +23 -0
- package/{skills/workflow → library/skills}/brainstorming/spec-document-reviewer-prompt.md +1 -1
- package/{skills/scene-and-project → library/skills}/browse-templates/SKILL.md +18 -18
- package/library/skills/browse-templates/resource.yaml +23 -0
- package/library/skills/celeste-momentum-platforming/SKILL.md +366 -0
- package/library/skills/celeste-momentum-platforming/resource.yaml +33 -0
- package/library/skills/character-animation-wiring/SKILL.md +249 -0
- package/library/skills/character-animation-wiring/resource.yaml +39 -0
- package/{skills/3d-assets → library/skills}/character-model/SKILL.md +25 -25
- package/library/skills/character-model/resource.yaml +36 -0
- package/{skills/2d-assets → library/skills}/character-portrait/SKILL.md +14 -14
- package/library/skills/character-portrait/resource.yaml +30 -0
- package/{skills/video → library/skills}/cinematic-cutscene/SKILL.md +2 -2
- package/library/skills/cinematic-cutscene/resource.yaml +29 -0
- package/{skills/2d-assets → library/skills}/concept-art/SKILL.md +15 -15
- package/library/skills/concept-art/resource.yaml +34 -0
- package/{skills/2d-assets → library/skills}/create-asset-sheet/SKILL.md +8 -8
- package/library/skills/create-asset-sheet/resource.yaml +33 -0
- package/{skills/debugging → library/skills}/debug/SKILL.md +3 -3
- package/library/skills/debug/resource.yaml +31 -0
- package/{skills/workflow → library/skills}/debugging-game-feel/SKILL.md +11 -11
- package/library/skills/debugging-game-feel/resource.yaml +25 -0
- package/{skills/level-design → library/skills}/design-level/SKILL.md +6 -6
- package/library/skills/design-level/resource.yaml +31 -0
- package/{skills/gameplay-mechanics → library/skills}/design-mechanic/SKILL.md +3 -3
- package/library/skills/design-mechanic/resource.yaml +31 -0
- package/{skills/ai-and-npcs → library/skills}/design-npc/SKILL.md +7 -3
- package/library/skills/design-npc/resource.yaml +29 -0
- package/{skills/workflow → library/skills}/diagnosing-perf-regressions/SKILL.md +10 -10
- package/library/skills/diagnosing-perf-regressions/resource.yaml +25 -0
- package/{skills/workflow → library/skills}/dispatching-parallel-agents/SKILL.md +8 -8
- package/library/skills/dispatching-parallel-agents/resource.yaml +23 -0
- package/library/skills/driving-the-editor-ui/SKILL.md +85 -0
- package/library/skills/driving-the-editor-ui/resource.yaml +46 -0
- package/{skills/3d-assets → library/skills}/environment-kit/SKILL.md +11 -11
- package/library/skills/environment-kit/resource.yaml +29 -0
- package/{skills/deployment → library/skills}/export-and-ship/SKILL.md +5 -5
- package/library/skills/export-and-ship/resource.yaml +32 -0
- package/library/skills/fabricating-assets/SKILL.md +195 -0
- package/library/skills/fabricating-assets/resource.yaml +52 -0
- package/{skills/animation → library/skills}/facial-and-lipsync/SKILL.md +23 -11
- package/library/skills/facial-and-lipsync/resource.yaml +36 -0
- package/{skills/character-controllers → library/skills}/fps-controller/SKILL.md +8 -4
- package/library/skills/fps-controller/resource.yaml +29 -0
- package/{skills/visual-effects → library/skills}/game-feel/SKILL.md +7 -7
- package/library/skills/game-feel/resource.yaml +27 -0
- package/library/skills/gameskill/SKILL.md +64 -0
- package/library/skills/gameskill/resource.yaml +22 -0
- package/library/skills/gdscript-patterns/resource.yaml +23 -0
- package/{skills/animation → library/skills}/generate-motion/SKILL.md +16 -16
- package/library/skills/generate-motion/resource.yaml +34 -0
- package/library/skills/godogen-visual-proof-game-generation/SKILL.md +223 -0
- package/library/skills/godogen-visual-proof-game-generation/resource.yaml +33 -0
- package/{skills/workflow → library/skills}/headless-scripting/SKILL.md +14 -7
- package/library/skills/headless-scripting/resource.yaml +26 -0
- package/library/skills/host-authoritative-state/resource.yaml +28 -0
- package/{skills/2d-assets → library/skills}/instantiate-asset-pack/SKILL.md +10 -12
- package/library/skills/instantiate-asset-pack/resource.yaml +29 -0
- package/{skills/workflow → library/skills}/investigating-bugs/SKILL.md +4 -4
- package/{skills/workflow → library/skills}/investigating-bugs/condition-based-waiting.md +8 -8
- package/library/skills/investigating-bugs/resource.yaml +24 -0
- package/{skills/workflow → library/skills}/investigating-bugs/root-cause-tracing.md +1 -7
- package/library/skills/lumera-single-image-scene-reconstruction/SKILL.md +164 -0
- package/library/skills/lumera-single-image-scene-reconstruction/resource.yaml +35 -0
- package/{skills/scene-and-project → library/skills}/make-game/SKILL.md +22 -22
- package/library/skills/make-game/resource.yaml +35 -0
- package/library/skills/music-track/resource.yaml +28 -0
- package/library/skills/navigate-summer/SKILL.md +61 -0
- package/library/skills/navigate-summer/resource.yaml +35 -0
- package/{skills/scene-and-project → library/skills}/new-project/SKILL.md +10 -10
- package/library/skills/new-project/resource.yaml +28 -0
- package/{skills/3d-assets → library/skills}/organic-model/SKILL.md +16 -16
- package/library/skills/organic-model/resource.yaml +32 -0
- package/{skills/multiplayer-and-networking → library/skills}/peer-to-peer-multiplayer/SKILL.md +2 -2
- package/library/skills/peer-to-peer-multiplayer/resource.yaml +28 -0
- package/{skills/2d-assets → library/skills}/pixel-art/SKILL.md +13 -13
- package/library/skills/pixel-art/resource.yaml +31 -0
- package/library/skills/play/resource.yaml +26 -0
- package/{skills/workflow → library/skills}/playtesting-a-feature/SKILL.md +41 -22
- package/library/skills/playtesting-a-feature/resource.yaml +31 -0
- package/{skills/animation → library/skills}/procedural-animation/SKILL.md +25 -10
- package/library/skills/procedural-animation/resource.yaml +33 -0
- package/{skills/3d-assets → library/skills}/prop-model/SKILL.md +13 -13
- package/library/skills/prop-model/resource.yaml +33 -0
- package/library/skills/psx-retro-rendering/SKILL.md +416 -0
- package/library/skills/psx-retro-rendering/resource.yaml +36 -0
- package/library/skills/realtime-wet-surfaces/SKILL.md +189 -0
- package/library/skills/realtime-wet-surfaces/resource.yaml +31 -0
- package/{skills/deployment → library/skills}/remote-deploy/SKILL.md +3 -3
- package/library/skills/remote-deploy/resource.yaml +23 -0
- package/{skills/animation → library/skills}/retarget/SKILL.md +15 -14
- package/library/skills/retarget/resource.yaml +33 -0
- package/library/skills/running-in-the-cloud/SKILL.md +103 -0
- package/library/skills/running-in-the-cloud/resource.yaml +33 -0
- package/{skills/scene-and-project → library/skills}/scene-composition/SKILL.md +8 -0
- package/library/skills/scene-composition/resource.yaml +27 -0
- package/library/skills/scene-hierarchy-design/SKILL.md +102 -0
- package/library/skills/scene-hierarchy-design/resource.yaml +31 -0
- package/library/skills/scene-scripting/SKILL.md +764 -0
- package/library/skills/scene-scripting/resource.yaml +58 -0
- package/{skills/level-design → library/skills}/scene-to-level/SKILL.md +16 -17
- package/library/skills/scene-to-level/resource.yaml +33 -0
- package/library/skills/setup-multiplayer/resource.yaml +28 -0
- package/library/skills/skill-create/SKILL.md +138 -0
- package/library/skills/skill-create/resource.yaml +25 -0
- package/{skills/workflow → library/skills}/skill-improve/SKILL.md +2 -2
- package/library/skills/skill-improve/resource.yaml +25 -0
- package/{skills/workflow → library/skills}/skill-test/SKILL.md +4 -4
- package/library/skills/skill-test/resource.yaml +26 -0
- package/library/skills/skintokens-auto-rigging/SKILL.md +200 -0
- package/library/skills/skintokens-auto-rigging/resource.yaml +38 -0
- package/{skills/2d-assets → library/skills}/skybox-panorama/SKILL.md +8 -8
- package/library/skills/skybox-panorama/resource.yaml +28 -0
- package/{skills/audio → library/skills}/sound-effect/SKILL.md +2 -2
- package/library/skills/sound-effect/resource.yaml +27 -0
- package/library/skills/spatial-placement/SKILL.md +74 -0
- package/library/skills/spatial-placement/resource.yaml +42 -0
- package/library/skills/spatial-placement/tests/spec.md +65 -0
- package/{skills/2d-assets → library/skills}/sprite-sheet/SKILL.md +12 -12
- package/library/skills/sprite-sheet/resource.yaml +32 -0
- package/{skills/2d-assets → library/skills}/tileable-texture/SKILL.md +9 -9
- package/library/skills/tileable-texture/resource.yaml +31 -0
- package/{skills/video → library/skills}/trailer-shot/SKILL.md +1 -1
- package/library/skills/trailer-shot/resource.yaml +27 -0
- package/{skills/performance → library/skills}/tune-performance/SKILL.md +6 -6
- package/library/skills/tune-performance/resource.yaml +31 -0
- package/library/skills/ui-basics/resource.yaml +25 -0
- package/{skills/2d-assets → library/skills}/ui-graphics/SKILL.md +11 -11
- package/library/skills/ui-graphics/resource.yaml +29 -0
- package/{skills/2d-assets → library/skills}/use-widget-asset/SKILL.md +4 -4
- package/library/skills/use-widget-asset/resource.yaml +29 -0
- package/{skills/workflow → library/skills}/using-summer/SKILL.md +12 -9
- package/library/skills/using-summer/resource.yaml +41 -0
- package/{skills/3d-assets → library/skills}/vehicle-model/SKILL.md +18 -18
- package/library/skills/vehicle-model/resource.yaml +34 -0
- package/{skills/workflow → library/skills}/verification-before-completion/SKILL.md +10 -10
- package/library/skills/verification-before-completion/resource.yaml +23 -0
- package/library/skills/verifying-scenes/SKILL.md +98 -0
- package/library/skills/verifying-scenes/resource.yaml +42 -0
- package/{skills/visual-effects/recipes/dissolve → library/skills/vfx-dissolve}/SKILL.md +31 -11
- package/library/skills/vfx-dissolve/resource.yaml +33 -0
- package/{skills/visual-effects/recipes/fire → library/skills/vfx-fire}/SKILL.md +43 -12
- package/library/skills/vfx-fire/_building-blocks/noise-3d-fbm.gdshaderinc +45 -0
- package/library/skills/vfx-fire/resource.yaml +35 -0
- package/{skills/visual-effects/recipes/hit-spark → library/skills/vfx-hit-spark}/SKILL.md +16 -10
- package/library/skills/vfx-hit-spark/_building-blocks/additive-billboard-particles.md +37 -0
- package/library/skills/vfx-hit-spark/resource.yaml +34 -0
- package/{skills/visual-effects/recipes/lightning → library/skills/vfx-lightning}/SKILL.md +24 -11
- package/library/skills/vfx-lightning/_building-blocks/additive-billboard-particles.md +37 -0
- package/library/skills/vfx-lightning/resource.yaml +33 -0
- package/{skills/visual-effects/recipes/magic-glow → library/skills/vfx-magic-glow}/SKILL.md +31 -11
- package/library/skills/vfx-magic-glow/_building-blocks/additive-billboard-particles.md +37 -0
- package/library/skills/vfx-magic-glow/resource.yaml +34 -0
- package/{skills/visual-effects/recipes/muzzle-flash → library/skills/vfx-muzzle-flash}/SKILL.md +29 -9
- package/library/skills/vfx-muzzle-flash/_building-blocks/additive-billboard-particles.md +37 -0
- package/library/skills/vfx-muzzle-flash/_building-blocks/trauma-shake-snippet.md +53 -0
- package/library/skills/vfx-muzzle-flash/resource.yaml +35 -0
- package/{skills/visual-effects/recipes/smoke → library/skills/vfx-smoke}/SKILL.md +35 -9
- package/library/skills/vfx-smoke/_building-blocks/noise-3d-fbm.gdshaderinc +45 -0
- package/library/skills/vfx-smoke/resource.yaml +32 -0
- package/{skills/visual-effects/recipes/water-ripple → library/skills/vfx-water-ripple}/SKILL.md +31 -9
- package/library/skills/vfx-water-ripple/_building-blocks/additive-billboard-particles.md +37 -0
- package/library/skills/vfx-water-ripple/resource.yaml +31 -0
- package/library/skills/voice-line/resource.yaml +27 -0
- package/library/skills/world-building-3d/SKILL.md +105 -0
- package/library/skills/world-building-3d/references/spatial-tools.md +50 -0
- package/library/skills/world-building-3d/resource.yaml +44 -0
- package/library/skills/world-building-3d/tests/spec.md +48 -0
- package/{skills/workflow → library/skills}/writing-plans/SKILL.md +19 -14
- package/library/skills/writing-plans/resource.yaml +23 -0
- package/{skills/workflow → library/skills}/writing-skills/SKILL.md +38 -44
- package/library/skills/writing-skills/resource.yaml +29 -0
- package/{skills/workflow → library/skills}/writing-skills/testing-skills-with-subagents.md +13 -14
- package/library/templates/2d-brario-platformer/resource.yaml +21 -0
- package/library/templates/2d-dungeon-roguelike/resource.yaml +23 -0
- package/library/templates/2d-grid-puzzle/resource.yaml +21 -0
- package/library/templates/2d-plants-and-zombies-tower-defense/resource.yaml +21 -0
- package/library/templates/2d-platformer/resource.yaml +24 -0
- package/library/templates/2d-rpg/resource.yaml +21 -0
- package/library/templates/2d-vampire-survivor-roguelike/resource.yaml +21 -0
- package/library/templates/3d-basic/resource.yaml +16 -0
- package/library/templates/3d-city-kit/resource.yaml +24 -0
- package/library/templates/3d-fps-old-school/resource.yaml +21 -0
- package/library/templates/3d-fps-simple-animated-npc/resource.yaml +21 -0
- package/library/templates/3d-lan-multiplayer-starter/resource.yaml +22 -0
- package/library/templates/3d-open-world-explore-tps/resource.yaml +21 -0
- package/library/templates/3d-procedural-road-world/resource.yaml +21 -0
- package/library/templates/3d-racing-game/resource.yaml +21 -0
- package/library/templates/3d-royale-clash-type/resource.yaml +21 -0
- package/library/templates/3d-third-person-controller/resource.yaml +21 -0
- package/library/templates/3d-voxel-sandbox/resource.yaml +24 -0
- package/library/templates/README.md +94 -0
- package/library/templates/empty/resource.yaml +16 -0
- package/library/tools/add-node/resource.yaml +60 -0
- package/library/tools/align-distribute-3d/resource.yaml +87 -0
- package/library/tools/api-docs/resource.yaml +57 -0
- package/library/tools/batch/resource.yaml +52 -0
- package/library/tools/camera-bookmark/resource.yaml +73 -0
- package/library/tools/check-job/resource.yaml +45 -0
- package/library/tools/clear-console/resource.yaml +40 -0
- package/library/tools/connect-signal/resource.yaml +63 -0
- package/library/tools/create-debug-report/resource.yaml +67 -0
- package/library/tools/create-scene/resource.yaml +59 -0
- package/library/tools/creator-config/resource.yaml +63 -0
- package/library/tools/creator-publish/resource.yaml +73 -0
- package/library/tools/creator-releases/resource.yaml +53 -0
- package/library/tools/fabricate-3d/resource.yaml +108 -0
- package/library/tools/game-control/resource.yaml +84 -0
- package/library/tools/game-input/resource.yaml +159 -0
- package/library/tools/game-probe/resource.yaml +90 -0
- package/library/tools/generate-3d/resource.yaml +112 -0
- package/library/tools/generate-audio/resource.yaml +80 -0
- package/library/tools/generate-image/resource.yaml +62 -0
- package/library/tools/generate-motion/resource.yaml +66 -0
- package/library/tools/generate-video/resource.yaml +66 -0
- package/library/tools/get-agent-playbook/resource.yaml +40 -0
- package/library/tools/get-asset/resource.yaml +42 -0
- package/library/tools/get-asset-download-url/resource.yaml +52 -0
- package/library/tools/get-console/resource.yaml +69 -0
- package/library/tools/get-debugger-errors/resource.yaml +56 -0
- package/library/tools/get-debugger-warnings/resource.yaml +52 -0
- package/library/tools/get-diagnostics/resource.yaml +42 -0
- package/library/tools/get-project-context/resource.yaml +45 -0
- package/library/tools/get-runtime-tree/resource.yaml +62 -0
- package/library/tools/get-scene-tree/resource.yaml +52 -0
- package/library/tools/get-script-errors/resource.yaml +45 -0
- package/library/tools/get-studio-workflow/resource.yaml +43 -0
- package/library/tools/import-asset/resource.yaml +73 -0
- package/library/tools/import-asset-by-id/resource.yaml +56 -0
- package/library/tools/import-from-url/resource.yaml +51 -0
- package/library/tools/import-from-url-batch/resource.yaml +60 -0
- package/library/tools/import-hdri/resource.yaml +69 -0
- package/library/tools/input-map-bind/resource.yaml +52 -0
- package/library/tools/inspect-node/resource.yaml +46 -0
- package/library/tools/inspect-resource/resource.yaml +45 -0
- package/library/tools/inspect-runtime-node/resource.yaml +54 -0
- package/library/tools/instantiate-scene/resource.yaml +62 -0
- package/library/tools/is-running/resource.yaml +40 -0
- package/library/tools/library-feedback/resource.yaml +89 -0
- package/library/tools/list-my-assets/resource.yaml +56 -0
- package/library/tools/navigation-probe/resource.yaml +85 -0
- package/library/tools/open/resource.yaml +80 -0
- package/library/tools/open-main-scene/resource.yaml +40 -0
- package/library/tools/open-scene/resource.yaml +46 -0
- package/library/tools/play/resource.yaml +91 -0
- package/library/tools/project-setting/resource.yaml +53 -0
- package/library/tools/read-file/resource.yaml +47 -0
- package/library/tools/read-library/resource.yaml +67 -0
- package/library/tools/recent-events/resource.yaml +71 -0
- package/library/tools/remove-node/resource.yaml +51 -0
- package/library/tools/replace-node/resource.yaml +57 -0
- package/library/tools/replace-text/resource.yaml +61 -0
- package/library/tools/run-editor-script/resource.yaml +61 -0
- package/library/tools/run-script/resource.yaml +73 -0
- package/library/tools/runtime-animate/resource.yaml +140 -0
- package/library/tools/runtime-call/resource.yaml +74 -0
- package/library/tools/runtime-set/resource.yaml +80 -0
- package/library/tools/runtime-spawn/resource.yaml +95 -0
- package/library/tools/save-scene/resource.yaml +50 -0
- package/library/tools/screenshot/resource.yaml +112 -0
- package/library/tools/search-assets/resource.yaml +67 -0
- package/library/tools/search-library/resource.yaml +81 -0
- package/library/tools/select-node/resource.yaml +48 -0
- package/library/tools/set-prop/resource.yaml +64 -0
- package/library/tools/set-resource-property/resource.yaml +66 -0
- package/library/tools/slice-asset-sheet/resource.yaml +47 -0
- package/library/tools/snap-to-surface/resource.yaml +90 -0
- package/library/tools/snapshot-diff/resource.yaml +58 -0
- package/library/tools/starcast/resource.yaml +120 -0
- package/library/tools/start-game-task/resource.yaml +91 -0
- package/library/tools/stop/resource.yaml +51 -0
- package/library/tools/test-placement/resource.yaml +109 -0
- package/library/tools/ui-actions/resource.yaml +77 -0
- package/library/tools/ui-activate/resource.yaml +88 -0
- package/library/tools/ui-screenshot/resource.yaml +63 -0
- package/library/tools/ui-tree/resource.yaml +69 -0
- package/library/tools/wait-for-event/resource.yaml +84 -0
- package/library/tools/world-snapshot/resource.yaml +60 -0
- package/library/tools/write-file/resource.yaml +54 -0
- package/package.json +22 -16
- package/registry/generated/aliases.json +207 -0
- package/registry/generated/counts.json +12 -0
- package/registry/generated/gemini-extension.json +122 -0
- package/registry/generated/index.json +7709 -0
- package/registry/generated/marketplace.claude.json +44 -0
- package/registry/generated/mcp.json +13 -0
- package/registry/generated/plugin.claude.json +135 -0
- package/registry/generated/plugin.codex.json +144 -0
- package/registry/generated/plugin.cursor.json +134 -0
- package/registry/generated/plugin.factory.json +117 -0
- package/registry/generated/skills-registry.json +851 -0
- package/registry/generated/templates-registry.json +455 -0
- package/registry/schemas/allowed-hosts.json +19 -0
- package/registry/schemas/collection.schema.json +68 -0
- package/registry/schemas/domains.json +96 -0
- package/registry/schemas/example.schema.json +11 -0
- package/registry/schemas/reference.schema.json +10 -0
- package/registry/schemas/resource.schema.json +154 -0
- package/registry/schemas/skill.schema.json +14 -0
- package/registry/schemas/template.schema.json +46 -0
- package/registry/schemas/tool.schema.json +61 -0
- package/_persona/summer/SKILL.md +0 -113
- package/dist/bin/postinstall.d.ts +0 -2
- package/dist/bin/postinstall.js +0 -3
- package/dist/commands/cloud.d.ts +0 -2
- package/dist/commands/cloud.js +0 -80
- package/dist/commands/create.d.ts +0 -3
- package/dist/commands/create.js +0 -171
- package/dist/commands/install.d.ts +0 -19
- package/dist/commands/install.js +0 -194
- package/dist/commands/list.js +0 -67
- package/dist/commands/logout.js +0 -13
- package/dist/commands/logs.d.ts +0 -2
- package/dist/commands/logs.js +0 -19
- package/dist/commands/open.d.ts +0 -2
- package/dist/commands/open.js +0 -32
- package/dist/commands/orchestrator.d.ts +0 -8
- package/dist/commands/orchestrator.js +0 -143
- package/dist/commands/run.d.ts +0 -2
- package/dist/commands/run.js +0 -167
- package/dist/commands/status.js +0 -46
- package/dist/lib/banner.d.ts +0 -4
- package/dist/lib/banner.js +0 -122
- package/dist/lib/cloud/api.d.ts +0 -79
- package/dist/lib/cloud/api.js +0 -107
- package/dist/lib/cloud/apply.d.ts +0 -32
- package/dist/lib/cloud/apply.js +0 -294
- package/dist/lib/cloud/checkpoint.d.ts +0 -26
- package/dist/lib/cloud/checkpoint.js +0 -142
- package/dist/lib/cloud/conflicts.d.ts +0 -55
- package/dist/lib/cloud/conflicts.js +0 -131
- package/dist/lib/cloud/containment.d.ts +0 -8
- package/dist/lib/cloud/containment.js +0 -52
- package/dist/lib/cloud/diff.d.ts +0 -39
- package/dist/lib/cloud/diff.js +0 -138
- package/dist/lib/cloud/engine-bridge.d.ts +0 -34
- package/dist/lib/cloud/engine-bridge.js +0 -139
- package/dist/lib/cloud/hash-cache.d.ts +0 -23
- package/dist/lib/cloud/hash-cache.js +0 -44
- package/dist/lib/cloud/hash.d.ts +0 -10
- package/dist/lib/cloud/hash.js +0 -111
- package/dist/lib/cloud/http.d.ts +0 -17
- package/dist/lib/cloud/http.js +0 -47
- package/dist/lib/cloud/lock-path.d.ts +0 -1
- package/dist/lib/cloud/lock-path.js +0 -5
- package/dist/lib/cloud/lock.d.ts +0 -14
- package/dist/lib/cloud/lock.js +0 -143
- package/dist/lib/cloud/manifest.d.ts +0 -6
- package/dist/lib/cloud/manifest.js +0 -41
- package/dist/lib/cloud/paths.d.ts +0 -20
- package/dist/lib/cloud/paths.js +0 -90
- package/dist/lib/cloud/project-godot-merge.d.ts +0 -32
- package/dist/lib/cloud/project-godot-merge.js +0 -185
- package/dist/lib/cloud/rules.d.ts +0 -39
- package/dist/lib/cloud/rules.js +0 -159
- package/dist/lib/cloud/sync.d.ts +0 -21
- package/dist/lib/cloud/sync.js +0 -518
- package/dist/lib/cloud/transfer.d.ts +0 -23
- package/dist/lib/cloud/transfer.js +0 -184
- package/dist/lib/cloud/types.d.ts +0 -62
- package/dist/lib/cloud/types.js +0 -1
- package/dist/lib/cloud/validate-path.d.ts +0 -23
- package/dist/lib/cloud/validate-path.js +0 -103
- package/dist/lib/engine.d.ts +0 -51
- package/dist/lib/game-task-plan.d.ts +0 -42
- package/dist/lib/project-memory.d.ts +0 -33
- package/dist/lib/public-surface-paths.d.ts +0 -13
- package/dist/lib/public-surface-paths.js +0 -42
- package/dist/lib/remote-templates.d.ts +0 -25
- package/dist/lib/remote-templates.js +0 -86
- package/dist/lib/skills-registry.d.ts +0 -572
- package/dist/lib/skills-registry.js +0 -1061
- package/dist/lib/version-check.d.ts +0 -106
- package/dist/mcp/tools/cloud-tools.js +0 -42
- package/references/mcp-tools-reference.md +0 -199
- package/references/template-registry.md +0 -73
- package/skills/README.md +0 -103
- package/skills/scene-and-project/summer-cloud/SKILL.md +0 -92
- package/skills/workflow/brainstorming/scripts/frame-template.html +0 -214
- package/skills/workflow/brainstorming/scripts/helper.js +0 -88
- package/skills/workflow/brainstorming/scripts/server.cjs +0 -354
- package/skills/workflow/brainstorming/scripts/start-server.sh +0 -148
- package/skills/workflow/brainstorming/scripts/stop-server.sh +0 -56
- package/skills/workflow/brainstorming/visual-companion.md +0 -287
- package/skills/workflow/gameskill/SKILL.md +0 -120
- package/skills/workflow/investigating-bugs/CREATION-LOG.md +0 -119
- package/skills/workflow/investigating-bugs/condition-based-waiting-example.ts +0 -158
- package/skills/workflow/investigating-bugs/find-polluter.sh +0 -63
- package/skills/workflow/investigating-bugs/test-academic.md +0 -14
- package/skills/workflow/investigating-bugs/test-pressure-1.md +0 -58
- package/skills/workflow/investigating-bugs/test-pressure-2.md +0 -68
- package/skills/workflow/investigating-bugs/test-pressure-3.md +0 -69
- package/skills/workflow/mcpupdate/SKILL.md +0 -134
- package/skills/workflow/skill-create/SKILL.md +0 -153
- package/skills/workflow/writing-skills/anthropic-best-practices.md +0 -1150
- package/skills/workflow/writing-skills/examples/CLAUDE_MD_TESTING.md +0 -189
- package/skills/workflow/writing-skills/graphviz-conventions.dot +0 -172
- package/skills/workflow/writing-skills/persuasion-principles.md +0 -187
- package/skills/workflow/writing-skills/render-graphs.js +0 -168
- /package/dist/{commands → cli/commands}/config.d.ts +0 -0
- /package/dist/{commands → cli/commands}/debug.d.ts +0 -0
- /package/dist/{commands → cli/commands}/list.d.ts +0 -0
- /package/dist/{commands → cli/commands}/login.d.ts +0 -0
- /package/dist/{commands → cli/commands}/plan.d.ts +0 -0
- /package/dist/{commands → cli/commands}/publish.d.ts +0 -0
- /package/dist/{commands → cli/commands}/releases.d.ts +0 -0
- /package/dist/{commands → cli/commands}/setup.d.ts +0 -0
- /package/dist/{commands → cli/commands}/skills.d.ts +0 -0
- /package/dist/{lib → core}/log-filters.d.ts +0 -0
- /package/dist/{lib → core}/mcp-log.d.ts +0 -0
- /package/dist/{lib → core}/store.d.ts +0 -0
- /package/dist/{lib → core}/summer-compatibility.d.ts +0 -0
- /package/dist/{lib → core}/telemetry.d.ts +0 -0
- /package/dist/{lib/mcp-boot-notice.js → mcp/boot-notice.js} +0 -0
- /package/dist/{commands/mcp.d.ts → mcp/command.d.ts} +0 -0
- /package/{references → library/references/collaborative-protocol}/collaborative-protocol.md +0 -0
- /package/{references → library/references/gd-style}/gd-style.md +0 -0
- /package/{skills/audio → library/skills}/ambient-bed/SKILL.md +0 -0
- /package/{skills/gameplay-mechanics → library/skills}/auto-fire-targeting/SKILL.md +0 -0
- /package/{skills/scripting-patterns → library/skills}/gdscript-patterns/SKILL.md +0 -0
- /package/{skills/scripting-patterns → library/skills}/gdscript-patterns/reference.md +0 -0
- /package/{skills/multiplayer-and-networking → library/skills}/host-authoritative-state/SKILL.md +0 -0
- /package/{skills/workflow → library/skills}/investigating-bugs/defense-in-depth.md +0 -0
- /package/{skills/audio → library/skills}/music-track/SKILL.md +0 -0
- /package/{skills/scene-and-project → library/skills}/play/SKILL.md +0 -0
- /package/{skills/multiplayer-and-networking → library/skills}/setup-multiplayer/SKILL.md +0 -0
- /package/{skills/ui-and-ux → library/skills}/ui-basics/SKILL.md +0 -0
- /package/{skills/visual-effects → library/skills/vfx-dissolve}/_building-blocks/noise-3d-fbm.gdshaderinc +0 -0
- /package/{skills/visual-effects → library/skills/vfx-fire}/_building-blocks/additive-billboard-particles.md +0 -0
- /package/{skills/visual-effects → library/skills/vfx-lightning}/_building-blocks/trauma-shake-snippet.md +0 -0
- /package/{skills/audio → library/skills}/voice-line/SKILL.md +0 -0
- /package/{skills/workflow → library/skills}/writing-plans/plan-document-reviewer-prompt.md +0 -0
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
# Summer product map
|
|
2
|
+
|
|
3
|
+
> Every place an agent can send the user: pages on summerengine.com and docs.summerengine.com, and surfaces inside the Summer Engine editor. One table, two surfaces. Open any row with `summer_open` (MCP) or `summer open <id>` (CLI); the `navigate-summer` skill says when to open a surface for the user and when to act through the API instead.
|
|
4
|
+
|
|
5
|
+
**Generated file.** Rendered from the tool's own data by `node scripts/navigation/render-product-map.ts`; a test fails when this file and the data disagree. Do not edit by hand.
|
|
6
|
+
|
|
7
|
+
## Who owns what
|
|
8
|
+
|
|
9
|
+
- **Web rows** come from summerengine.com's own route catalog (`/agent-routes.json`, published from the web repo's `src/lib/navigation/routes.ts`). The toolkit vendors a snapshot (`assets/navigation/web-routes.json`, refreshed with `npm run sync:web-routes`); it does not invent pages.
|
|
10
|
+
- **Editor rows** are ids of Summer Engine's one navigation table (`navigate_ops.cpp`, op `Navigate`). The running engine advertises which ids it can open in `/api/health` `capabilities.navigation`; `summer open --list` shows availability from the connected engine. Engines that predate the `Navigate` op can still serve the rows with a legacy op (last-but-one column); every other row answers `engine_lacks_op` with an update hint.
|
|
11
|
+
|
|
12
|
+
## How to read a row
|
|
13
|
+
|
|
14
|
+
- **id** — what you pass as `target`. Aliases in parentheses also resolve. Intent phrases in the third column resolve too (`summer open "change my plan"`).
|
|
15
|
+
- **where** — the URL (web) or the engine op (editor). `{slot}` is a required param; `[/{slot}]` is optional. Web URLs are shown on the apex host; the tool uses the configured gateway (`gateway.url` / `SUMMER_GATEWAY_URL`), so a staging gateway opens staging.
|
|
16
|
+
- **params** — slot values passed as `params: { … }`. `guide` accepts an agent name (`cursor`, `claude-code`, `codex`, `gemini`, …) or a guide slug; `section` is one of the game's Studio sections; `line`/`col` are for `script`.
|
|
17
|
+
- **login** — the page needs a Summer account; when this machine has no CLI login token the tool opens `/login?returnUrl=<path>` and the destination loads after sign-in. Editor rows need Summer Engine running with the project open; otherwise the tool reports `engine_not_running` and nothing opens.
|
|
18
|
+
|
|
19
|
+
Things that do not exist and are therefore not in the map (verified against the web app, 2026-09-03): a public play URL for a published game (`/games` is a curated gallery; distribution runs through a game's Builds / Releases / Store page in Studio, so "my published games" is `my-games`), and an API-token or MCP-credential page (CLI login is a device-code flow started by `summer login`).
|
|
20
|
+
|
|
21
|
+
## Web
|
|
22
|
+
|
|
23
|
+
| id | surface | intents (excerpt) | where | params | login | what the user sees |
|
|
24
|
+
|---|---|---|---|---|---|---|
|
|
25
|
+
| `home` | web | "summer website", "homepage", "the website", "summerengine.com" | `https://summerengine.com/` | — | — | The Summer homepage. |
|
|
26
|
+
| `pricing` | web | "pricing", "how much does it cost", "plans and prices", "what does summer cost" | `https://summerengine.com/pricing` | — | — | Free tier and paid AI-usage tiers; upgrade buttons start Stripe checkout. |
|
|
27
|
+
| `download` | web | "download the app", "download summer engine", "install summer engine", "get the desktop app" | `https://summerengine.com/download` | — | — | Desktop installers for macOS and Windows. |
|
|
28
|
+
| `cli-guide` | web | "cli page", "how do i install the cli", "cli setup", "command line install" | `https://summerengine.com/cli` | — | — | How to install the summer-engine CLI and the one-paste agent prompt. |
|
|
29
|
+
| `mcp-guide` | web | "mcp setup", "set up the mcp", "connect my agent", "how do i set up cursor" | `https://summerengine.com/mcp[/{guide}]` | `guide` | — | The MCP + CLI hub, or the step-by-step guide for one agent (Claude Code, Cursor, Codex, Gemini CLI, Cline, Kilo Code, OpenCode, Devin, local LLMs, Ollama, LM Studio, Goose). |
|
|
30
|
+
| `templates` | web | "browse templates", "template gallery", "game templates", "starter projects" | `https://summerengine.com/templates` | — | — | Browse every game template by category and use case. |
|
|
31
|
+
| `templates-start` | web | "start a new game on the web", "web onboarding", "plan builder" | `https://summerengine.com/templates/start` | — | — | The web onboarding flow that turns a template pick into a plan. |
|
|
32
|
+
| `asset-store` | web | "asset store", "find assets", "browse assets", "free game assets" | `https://summerengine.com/asset-store` | — | — | Browse 2D art, 3D models, sprites, animations, music and sound effects. |
|
|
33
|
+
| `plugins` | web | "plugins", "plugin catalog", "skills catalog" | `https://summerengine.com/plugins` | — | — | The public plugin and skill catalog. |
|
|
34
|
+
| `changelog` | web | "changelog", "what's new", "release notes", "what changed in the last update" | `https://summerengine.com/changelog[/{version}]` | `version` | — | Release notes: the index, or one engine version. |
|
|
35
|
+
| `blog` | web | "blog", "blog posts", "articles" | `https://summerengine.com/blog` | — | — | The Summer blog. |
|
|
36
|
+
| `roadmap` | web | "roadmap", "what's coming", "planned features" | `https://summerengine.com/roadmap` | — | — | The public product roadmap. |
|
|
37
|
+
| `games` | web | "games gallery", "featured games", "game jams", "jam" | `https://summerengine.com/games` | — | — | The public gallery of featured games, jams and events. |
|
|
38
|
+
| `docs` | web | "documentation", "the docs", "read the docs", "manual" | `https://docs.summerengine.com/` | — | — | docs.summerengine.com, the Summer documentation. |
|
|
39
|
+
| `docs-mcp` | web | "mcp docs", "mcp documentation", "how the mcp works" | `https://docs.summerengine.com/mcp/overview` | — | — | The MCP overview in the documentation. |
|
|
40
|
+
| `docs-install` | web | "installation docs", "install instructions", "how to install" | `https://docs.summerengine.com/essentials/installation` | — | — | Installing Summer Engine, step by step. |
|
|
41
|
+
| `docs-quickstart` | web | "quickstart", "getting started guide", "first project tutorial" | `https://docs.summerengine.com/quickstarts/fresh-project` | — | — | Fresh-project quickstart in the documentation. |
|
|
42
|
+
| `docs-sdk` | web | "sdk reference", "sdk docs", "api reference", "summer sdk" | `https://docs.summerengine.com/api-reference/summer-sdk` | — | — | The Summer SDK API reference. |
|
|
43
|
+
| `login` | web | "sign in", "log in", "login page" | `https://summerengine.com/login` | — | — | The sign-in page (email/password or Google). |
|
|
44
|
+
| `signup` | web | "sign up", "create an account", "register" | `https://summerengine.com/signup` | — | — | The sign-up page. |
|
|
45
|
+
| `studio` | web | "studio", "summer studio", "open studio", "the studio" | `https://summerengine.com/studio` | — | — | The Studio workspace (home tab). |
|
|
46
|
+
| `my-games` (`projects`, `my-projects`, `published-games`) | web | "my games", "my projects", "my published games", "published games" | `https://summerengine.com/studio/games` | — | login | Your games (projects) in Studio: overview, builds, releases, store pages. |
|
|
47
|
+
| `game` | web | "open this game in studio", "builds for my game", "releases of my game", "store page for my game" | `https://summerengine.com/studio/games/{gameId}[/{section}]` | `gameId` (required), `section` | login | One game's Studio pages: overview, builds, releases, store page, passport, players, analytics, economy, settings, danger zone and more. |
|
|
48
|
+
| `billing` (`plan`, `subscription`, `payments`) | web | "billing", "change my plan", "upgrade my plan", "upgrade" | `https://summerengine.com/studio?tab=billing` | — | login | Current plan, upgrade, Stripe billing portal (payment method, invoices), top-ups. |
|
|
49
|
+
| `usage` (`spending`, `credits`) | web | "usage", "how many credits do i have left", "spending", "credit usage" | `https://summerengine.com/studio?tab=billing§ion=usage` | — | login | Account usage and spending: how many credits were used and on what. |
|
|
50
|
+
| `settings` | web | "account settings", "settings page", "change my email", "change my password" | `https://summerengine.com/studio?tab=settings` | — | login | Account settings in Studio (email, password, preferences, delete account). |
|
|
51
|
+
| `team` (`members`, `workspace`) | web | "team", "members", "invite a teammate", "workspace members" | `https://summerengine.com/studio?tab=team` | — | login | Workspace members and invites. |
|
|
52
|
+
| `cloud` | web | "project cloud", "cloud storage", "cloud projects", "synced projects" | `https://summerengine.com/studio?tab=cloud` | — | login | Project Cloud storage and synced projects. |
|
|
53
|
+
| `my-assets` (`assets`, `library`) | web | "my assets", "generated assets", "my library", "saved assets" | `https://summerengine.com/studio?tab=assets` | — | — | Assets you generated or saved, ready to import. |
|
|
54
|
+
| `workflows` | web | "guided workflows", "workflows", "studio recipes" | `https://summerengine.com/studio?tab=workflows` | — | — | Guided Studio workflows (recipes). |
|
|
55
|
+
| `story-builder` | web | "story builder", "write my story", "narrative tool" | `https://summerengine.com/studio?tab=storyBuilder` | — | login | The Story Builder tool. |
|
|
56
|
+
| `board` | web | "board", "task board", "kanban" | `https://summerengine.com/studio?tab=board` | — | login | The project board. |
|
|
57
|
+
| `studio-plugins` | web | "plugins in studio", "manage my plugins", "installed plugins" | `https://summerengine.com/studio?tab=plugins` | — | — | Plugins tab inside Studio. |
|
|
58
|
+
| `studio-store` | web | "asset store in studio", "store tab" | `https://summerengine.com/studio?tab=store` | — | — | The Asset Store as a Studio tab. |
|
|
59
|
+
| `generate-image` (`2d`, `image`) | web | "image generator", "generate an image on the web", "2d tab", "make a picture in studio" | `https://summerengine.com/studio?tab=image` | — | — | Generate or edit images (the 2D tab). |
|
|
60
|
+
| `generate-3d` (`3d`) | web | "3d generator", "generate a 3d model on the web", "3d tab" | `https://summerengine.com/studio?tab=3d` | — | — | Generate 3D models (the 3D tab). |
|
|
61
|
+
| `generate-audio` (`audio`) | web | "audio generator", "generate audio on the web", "audio tab", "music generator" | `https://summerengine.com/studio?tab=audio` | — | — | Generate speech, music and sound effects. |
|
|
62
|
+
| `generate-video` (`video`) | web | "video generator", "generate a video on the web", "video tab" | `https://summerengine.com/studio?tab=video` | — | — | Generate video (the Video tab). |
|
|
63
|
+
| `generate-animation` (`animation`) | web | "animation tab", "animation tools", "retarget on the web", "upload a mocap clip" | `https://summerengine.com/studio?tab=animation` | — | — | Animation tools (retargeting, mocap uploads). |
|
|
64
|
+
| `chat` | web | "web chat", "chat on the website", "summer chat" | `https://summerengine.com/chat` | — | login | A new agent chat on the web. |
|
|
65
|
+
| `skills` | web | "my skills page", "edit my skills on the web", "skills editor" | `https://summerengine.com/skills` | — | login | The agent-skills editor on the web. |
|
|
66
|
+
| `profile` | web | "my public profile", "public profile of", "creator page", "see my profile" | `https://summerengine.com/{username}` | `username` (required) | — | A creator's public profile page. |
|
|
67
|
+
| `edit-profile` | web | "edit my profile", "change my avatar", "update my bio", "profile editor" | `https://summerengine.com/profile/edit` | — | login | Edit your public profile. |
|
|
68
|
+
| `submit-game` | web | "submit my game", "add my game to the gallery", "enter the jam", "submit to the jam" | `https://summerengine.com/games/create` | — | login | Submit a game to the public gallery or a jam. |
|
|
69
|
+
|
|
70
|
+
## Editor
|
|
71
|
+
|
|
72
|
+
| id | surface | intents (excerpt) | where (Navigate op) | params | legacy op (pre-Navigate engines) | what the user sees |
|
|
73
|
+
|---|---|---|---|---|---|---|
|
|
74
|
+
| `scene` | editor | "open the scene", "open this scene", "show the scene", "switch to the scene" | `Navigate target=scene path=<path> (path defaults to the main scene)` | `path` | `OpenScene` | The scene becomes the current tab in Summer Engine. |
|
|
75
|
+
| `main-scene` | editor | "open the main scene", "main scene", "go to the main scene", "the starting scene" | `Navigate target=scene (path defaults to the main scene)` | — | `OpenScene` | The project's configured main scene becomes the current tab. |
|
|
76
|
+
| `node` | editor | "select the node", "show me the node", "focus the player node", "highlight the node" | `Navigate target=node path=<node> scene=<scene>` | `node` (required), `scene` | `SelectNode` | The node is highlighted in the Scene tree and its properties show in the Inspector. |
|
|
77
|
+
| `script` | editor | "open the script", "show me the script", "open the gdscript file", "go to the script" | `Navigate target=script path=<path> line=<line> col=<col>` | `path` (required), `line`, `col` | `OpenResource` | The script opens in the Script editor and takes focus (at a line, when given). On engines without the Navigate op it opens without taking focus. |
|
|
78
|
+
| `file` | editor | "show the file in the filesystem", "reveal the file", "find the file in the editor", "where is this asset" | `Navigate target=file path=<path>` | `path` (required) | `RevealInFileSystem` | The FileSystem dock comes to the front, scrolled to the file. |
|
|
79
|
+
| `files` (`filesystem`, `file-system`) | editor | "filesystem dock", "file dock", "show the files", "project files panel" | `Navigate target=dock name=file_system` | — | `FocusDock` {"dock":"file_system"} | The FileSystem dock comes to the front. |
|
|
80
|
+
| `scene-tree` | editor | "scene tree", "scene dock", "show the scene tree", "node tree panel" | `Navigate target=dock name=scene_tree` | — | `FocusDock` {"dock":"scene_tree"} | The Scene tree dock comes to the front. |
|
|
81
|
+
| `inspector` | editor | "inspector", "show the inspector", "properties panel", "inspector dock" | `Navigate target=dock name=inspector` | — | `FocusDock` {"dock":"inspector"} | The Inspector dock comes to the front. |
|
|
82
|
+
| `import-dock` | editor | "import dock", "import settings panel", "show import options" | `Navigate target=dock name=import` | — | — (needs an engine with the Navigate op) | The Import dock comes to the front. |
|
|
83
|
+
| `signals-dock` | editor | "signals dock", "node dock", "show the signals", "connect signals panel" | `Navigate target=dock name=node` | — | — (needs an engine with the Navigate op) | The Node dock (signals and groups) comes to the front. |
|
|
84
|
+
| `changes-dock` | editor | "changes dock", "show the changes", "what did the agent change", "diff panel" | `Navigate target=dock name=changes` | — | — (needs an engine with the Navigate op) | The Changes dock comes to the front. |
|
|
85
|
+
| `screen-2d` | editor | "switch to 2d", "2d view", "show the 2d editor" | `Navigate target=screen-2d` | — | — (needs an engine with the Navigate op) | The main editor switches to the 2D view. |
|
|
86
|
+
| `screen-3d` | editor | "switch to 3d", "3d view", "show the 3d editor", "show me the viewport" | `Navigate target=screen-3d` | — | — (needs an engine with the Navigate op) | The main editor switches to the 3D view. |
|
|
87
|
+
| `screen-script` | editor | "switch to the script editor", "script view", "show the code editor" | `Navigate target=screen-script` | — | — (needs an engine with the Navigate op) | The main editor switches to the Script view. |
|
|
88
|
+
| `screen-game` | editor | "switch to the game view", "game tab", "show the running game view" | `Navigate target=screen-game` | — | — (needs an engine with the Navigate op) | The main editor switches to the Game view. |
|
|
89
|
+
| `screen-assetlib` | editor | "asset library tab", "open the asset lib", "godot asset library" | `Navigate target=screen-assetlib` | — | — (needs an engine with the Navigate op) | The main editor switches to the AssetLib view. |
|
|
90
|
+
| `viewport-show` | editor | "show the viewport column", "bring back the viewport", "unhide the editor viewport" | `Navigate target=viewport-show` | — | — (needs an engine with the Navigate op) | The agent layout's viewport column becomes visible. |
|
|
91
|
+
| `viewport-hide` | editor | "hide the viewport column", "hide the editor viewport", "chat only layout" | `Navigate target=viewport-hide` | — | — (needs an engine with the Navigate op) | The agent layout's viewport column is hidden. |
|
|
92
|
+
| `assistant` | editor | "open the assistant", "show the chat dock", "summer assistant", "ai chat in the editor" | `Navigate target=assistant path=<path>` | `path` | — (needs an engine with the Navigate op) | The Summer assistant (chat) dock opens. |
|
|
93
|
+
| `project-settings` | editor | "project settings", "settings", "open project settings", "input map settings" | `Navigate target=project-settings tab=<tab>` | `tab` | — (needs an engine with the Navigate op) | The Project Settings dialog opens. |
|
|
94
|
+
| `editor-settings` | editor | "editor settings", "settings", "open editor settings", "editor preferences" | `Navigate target=editor-settings` | — | — (needs an engine with the Navigate op) | The Editor Settings dialog opens. |
|
|
95
|
+
| `output` | editor | "output panel", "show the output", "editor console", "show the log" | `Navigate target=panel name=output` | — | — (needs an engine with the Navigate op) | The Output panel opens at the bottom of the editor. |
|
|
96
|
+
| `debugger` | editor | "debugger panel", "show the debugger", "open the debugger", "errors panel" | `Navigate target=panel name=debugger` | — | — (needs an engine with the Navigate op) | The Debugger panel opens at the bottom of the editor. |
|
|
97
|
+
| `editor-window` | editor | "bring the editor to the front", "focus summer engine", "show the editor window", "switch to the editor" | `Navigate target=editor-window` | — | — (needs an engine with the Navigate op) | The Summer Engine window comes to the front. |
|
|
98
|
+
|
|
99
|
+
## Shorthands the tool also accepts
|
|
100
|
+
|
|
101
|
+
- A `res://` path: `.tscn`/`.scn` → `scene`, `.gd`/`.cs` → `script`, anything else → `file`.
|
|
102
|
+
- A summerengine.com path: `/pricing` resolves to the matching row; an unknown path on the gateway origin opens as given and is reported `unmapped: true`.
|
|
103
|
+
- Anything that is not on summerengine.com or docs.summerengine.com is refused.
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
id: reference/product-map
|
|
2
|
+
kind: reference
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
summary: The product map — every summerengine.com page and editor surface an agent can open for the user, with intent phrases, URL or op, required context, and status.
|
|
5
|
+
use_when:
|
|
6
|
+
- resolving where a user intent lives — "where do I change my plan", "where are my published games", "how do I get to the MCP guide for Codex"
|
|
7
|
+
- deciding whether a destination needs login, a running engine, or a parameter (gameId, path, node) before calling summer_open
|
|
8
|
+
- checking whether an editor surface (assistant dock, project settings, 2D/3D switch) can be opened on this engine build or is still planned
|
|
9
|
+
do_not_use_when:
|
|
10
|
+
- you already know the target id — call summer_open directly (the tool carries the same table)
|
|
11
|
+
- looking up which Summer MCP tool performs a change — that is the mcp-tools-reference
|
|
12
|
+
facets:
|
|
13
|
+
lifecycle:
|
|
14
|
+
- build
|
|
15
|
+
- launch
|
|
16
|
+
- support
|
|
17
|
+
domains:
|
|
18
|
+
- navigation
|
|
19
|
+
- agent-workflow
|
|
20
|
+
modalities:
|
|
21
|
+
- docs
|
|
22
|
+
compatibility:
|
|
23
|
+
engine: ">=4.6"
|
|
24
|
+
related:
|
|
25
|
+
tools:
|
|
26
|
+
- tool/open
|
|
27
|
+
skills:
|
|
28
|
+
- skill/navigate-summer
|
|
29
|
+
references:
|
|
30
|
+
- reference/mcp-tools-reference
|
|
31
|
+
source: official
|
|
32
|
+
license: MIT
|
|
33
|
+
status: stable
|
package/{references → library/references/public-surface-language}/public-surface-language.md
RENAMED
|
@@ -17,14 +17,12 @@ source of truth is the repository compatibility contract. Neither number is a
|
|
|
17
17
|
permanent Summer identity, so creator prompts and skills should not pin
|
|
18
18
|
themselves to one upstream release.
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
There is no automated guard for this yet. Before a release, list the remaining
|
|
21
|
+
upstream references across the shipped surfaces and review each one:
|
|
21
22
|
|
|
22
23
|
```bash
|
|
23
|
-
|
|
24
|
+
grep -rn -i "godot" README.md AGENTS.md CHANGELOG.md library/ | grep -v -i "project.godot\|\.godot/"
|
|
24
25
|
```
|
|
25
26
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
inventory grouped by file. This is intentionally not a semantic linter: a human
|
|
29
|
-
must still review those references and confirm that each is technical,
|
|
30
|
-
migration-related, attribution, or legal context.
|
|
27
|
+
Keep references that are technical, migration-related, attribution, or legal
|
|
28
|
+
context; rewrite identity claims. This is a human review, not a linter.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
id: reference/public-surface-language
|
|
2
|
+
kind: reference
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
summary: The Summer public-surface language boundary — when to say Summer game / Summer SDK and when Godot terminology remains correct.
|
|
5
|
+
use_when:
|
|
6
|
+
- writing user-facing copy, CLI errors, skill descriptions, or generated prompts
|
|
7
|
+
- deciding whether a technical or legal context calls for Godot terminology
|
|
8
|
+
facets:
|
|
9
|
+
lifecycle: [build]
|
|
10
|
+
domains: [naming, product-language]
|
|
11
|
+
compatibility:
|
|
12
|
+
engine: ">=4.6"
|
|
13
|
+
source: official
|
|
14
|
+
license: MIT
|
|
15
|
+
status: stable
|
|
16
|
+
aliases:
|
|
17
|
+
- references/public-surface-language.md
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
id: reference/summer-folder
|
|
2
|
+
kind: reference
|
|
3
|
+
version: 1.0.1
|
|
4
|
+
summary: The canonical layout of the project-scoped .summer/ folder — GameSoul.md, art/audio bibles, build plan, memory, and locked state.
|
|
5
|
+
use_when:
|
|
6
|
+
- authoring a skill that writes durable design output or project memory
|
|
7
|
+
- reading or extending a project's .summer/ state
|
|
8
|
+
facets:
|
|
9
|
+
lifecycle: [build]
|
|
10
|
+
domains: [project-memory, conventions]
|
|
11
|
+
compatibility:
|
|
12
|
+
engine: ">=4.6"
|
|
13
|
+
related:
|
|
14
|
+
references:
|
|
15
|
+
- reference/collaborative-protocol
|
|
16
|
+
source: official
|
|
17
|
+
license: MIT
|
|
18
|
+
status: stable
|
|
19
|
+
aliases:
|
|
20
|
+
- references/summer-folder.md
|
|
@@ -4,16 +4,17 @@
|
|
|
4
4
|
|
|
5
5
|
## Files at the root of `.summer/`
|
|
6
6
|
|
|
7
|
-
- `GameSoul.md` — the project brief. Created by `/
|
|
8
|
-
- `art-bible.md` — visual style reference. Created by `/
|
|
9
|
-
- `audio-bible.md` — sonic identity. Created by `/
|
|
10
|
-
- `build-plan.md` — implementation plan derived from `GameSoul.md`. Created by `/
|
|
7
|
+
- `GameSoul.md` — the project brief. Created by `/brainstorm-game`. Contains: name, one-sentence pitch, core loop, 3 mechanics max, art direction summary, scope. Updated whenever the game's high-level direction changes.
|
|
8
|
+
- `art-bible.md` — visual style reference. Created by `/art-direction`. Contains: palette (6–15 hex codes), mood adjectives, lighting plan, post-processing notes, do/don't list, references.
|
|
9
|
+
- `audio-bible.md` — sonic identity. Created by `/audio-direction`. Contains: music style + tempo range, SFX vocabulary (8 classes), dynamic music FSM, bus layout reference.
|
|
10
|
+
- `build-plan.md` — implementation plan derived from `GameSoul.md`. Created by `/make-game` before scaffold/build work.
|
|
11
|
+
- `project.json` — written by `summer create`, not by skills: the template pin (`id`, `version`, and `repo` + `commit` + `tree_digest` or `builtin: true`), `toolkit_version`, `created_at`. Read it to learn which template started the project; never edit it by hand.
|
|
11
12
|
|
|
12
13
|
## Subdirectories
|
|
13
14
|
|
|
14
|
-
- `mechanics/<mechanic-name>.md` — one file per designed mechanic (e.g., `double-jump.md`, `parry.md`). Created by `/
|
|
15
|
-
- `levels/<level-name>.md` — one file per designed level. Created by `/
|
|
16
|
-
- `npcs/<npc-name>.md` — one file per designed NPC. Created by `/
|
|
15
|
+
- `mechanics/<mechanic-name>.md` — one file per designed mechanic (e.g., `double-jump.md`, `parry.md`). Created by `/design-mechanic`. Contains: input → response → feedback → failure modes → tunable parameters.
|
|
16
|
+
- `levels/<level-name>.md` — one file per designed level. Created by `/design-level`. Contains: teaching goal, pacing curve (5 beats), encounters, secrets, reward gating.
|
|
17
|
+
- `npcs/<npc-name>.md` — one file per designed NPC. Created by `/design-npc`. Contains: archetype, perception model, decision tree, escalation, defeat sequence.
|
|
17
18
|
- `memory/` — structured project memory for durable facts that must survive future sessions. Use this for locked cast decisions, character facts, provider IDs, world canon, and conflict notes.
|
|
18
19
|
- `skills/` — installed project-scoped Summer skills. Do not put game design memory here.
|
|
19
20
|
|
|
@@ -71,20 +72,20 @@ Then write the fact in normal Markdown so users can inspect and edit it:
|
|
|
71
72
|
|
|
72
73
|
| Skill | Writes |
|
|
73
74
|
|---|---|
|
|
74
|
-
| `/
|
|
75
|
-
| `/
|
|
76
|
-
| `/
|
|
77
|
-
| `/
|
|
78
|
-
| `/
|
|
79
|
-
| `/
|
|
80
|
-
| `/
|
|
81
|
-
| `/
|
|
82
|
-
| `/
|
|
83
|
-
| `/
|
|
84
|
-
| `/
|
|
85
|
-
| `/
|
|
86
|
-
| `/
|
|
75
|
+
| `/brainstorm-game` | `.summer/GameSoul.md` |
|
|
76
|
+
| `/art-direction` | `.summer/art-bible.md` |
|
|
77
|
+
| `/audio-direction` | `.summer/audio-bible.md` |
|
|
78
|
+
| `/design-mechanic` | `.summer/mechanics/<name>.md` |
|
|
79
|
+
| `/design-level` | `.summer/levels/<name>.md` |
|
|
80
|
+
| `/design-npc` | `.summer/npcs/<name>.md` |
|
|
81
|
+
| `/voice-line` | `.summer/memory/casting/voices.md` |
|
|
82
|
+
| `/debug` | does NOT write here |
|
|
83
|
+
| `/play` | does NOT write here |
|
|
84
|
+
| `/game-feel`, `/vfx-<effect>` | does NOT write here (VFX edits scenes/scripts) |
|
|
85
|
+
| `/tune-performance` | optionally writes `.summer/perf-notes.md` if user requests |
|
|
86
|
+
| `/setup-multiplayer` | optionally writes `.summer/multiplayer-architecture.md` |
|
|
87
|
+
| `/export-and-ship` | does NOT write here (writes export configs in `project.godot`) |
|
|
87
88
|
|
|
88
89
|
## Linter check (future)
|
|
89
90
|
|
|
90
|
-
Once `
|
|
91
|
+
Once the `skill-test` skill gains an executable mode, it should validate that any skill writing to `.summer/` is documented in the table above.
|
|
@@ -5,7 +5,7 @@ license: MIT
|
|
|
5
5
|
compatibility: [Cursor, Claude Code, Windsurf, Codex]
|
|
6
6
|
category: rendering-and-lighting
|
|
7
7
|
user-invocable: false
|
|
8
|
-
allowed-tools: Read Grep summer_add_node summer_set_prop summer_set_resource_property summer_save_scene
|
|
8
|
+
allowed-tools: Read Grep summer_add_node summer_set_prop summer_set_resource_property summer_save_scene summer_run_script summer_screenshot
|
|
9
9
|
paths: ["**/*.tscn", "**/*.tres"]
|
|
10
10
|
---
|
|
11
11
|
|
|
@@ -109,8 +109,9 @@ Always use `Color(r, g, b, a)` with values 0.0–1.0:
|
|
|
109
109
|
|
|
110
110
|
## Baked lighting — what you can and cannot do from here
|
|
111
111
|
|
|
112
|
-
Real-time lighting (everything above) is fully scriptable. Baking is
|
|
113
|
-
split is
|
|
112
|
+
Real-time lighting (everything above) is fully scriptable. Baking mostly is too on
|
|
113
|
+
this build — the split that matters is *which process* runs the bake, not whether a
|
|
114
|
+
script can trigger it.
|
|
114
115
|
|
|
115
116
|
| Approach | Callable from MCP / a script? |
|
|
116
117
|
|---|---|
|
|
@@ -118,14 +119,17 @@ split is worth stating before you promise a user a bake.
|
|
|
118
119
|
| `WorldEnvironment` + `Environment` (sky, ambient, tonemap, glow, SSAO, SSR) | Yes |
|
|
119
120
|
| `SDFGI` real-time GI | Yes — `Environment.sdfgi_enabled = true`, no bake step at all |
|
|
120
121
|
| `VoxelGI` | Yes — `VoxelGI.bake()` **is** bound to script (`ClassDB.class_has_method("VoxelGI", "bake")` is true) |
|
|
121
|
-
| **`LightmapGI` bake** | **
|
|
122
|
-
| **`OccluderInstance3D` occlusion bake** | **No.** `bake_single_node` is not script-callable
|
|
123
|
-
|
|
124
|
-
So when the user asks for baked lighting: add and configure the `LightmapGI`
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
122
|
+
| **`LightmapGI` bake** | **Yes, from the live editor.** Summer binds `LightmapGI.bake(from_node, image_data_path)` to script (upstream leaves it button-only). Call it from `summer_run_script`. The GPU lightmapper needs a real renderer (a RenderingDevice): a normal desktop editor has one; a cloud container needs xvfb + GL (`running-in-the-cloud`); a **pure-headless** process has none and the call returns `BAKE_ERROR_NO_LIGHTMAPPER`. |
|
|
123
|
+
| **`OccluderInstance3D` occlusion bake** | **No.** `bake_single_node` is not script-callable. Editor-button only. |
|
|
124
|
+
|
|
125
|
+
So when the user asks for baked lighting: add and configure the `LightmapGI` node,
|
|
126
|
+
set the meshes' `gi_mode`, then run the bake yourself from `summer_run_script` —
|
|
127
|
+
`lgi.bake(lgi, "res://lightmaps/scene_lm.exr")` — and check the returned bake-error
|
|
128
|
+
enum (0 is OK; `BAKE_ERROR_NO_LIGHTMAPPER` means no renderer in this process, not a
|
|
129
|
+
missing binding). Verify with a `framing:"camera"` screenshot, which renders the
|
|
130
|
+
real environment. Only fall back to "press Bake Lightmaps in the editor" when
|
|
131
|
+
there is genuinely no renderer available. If they want GI with zero bake step,
|
|
132
|
+
steer to `SDFGI` (`Environment.sdfgi_enabled`) or `VoxelGI`.
|
|
129
133
|
|
|
130
134
|
Note the related trap: `Engine.has_singleton("EditorInterface")` returns **true**
|
|
131
135
|
even in a headless non-editor process, so it is not a valid capability probe.
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
id: skill/3d-lighting
|
|
2
|
+
kind: skill
|
|
3
|
+
version: 1.0.3
|
|
4
|
+
summary: Set up 3D scene lighting — DirectionalLight3D vs Omni vs Spot, WorldEnvironment, sky, shadow tuning, ambient — per current Summer conventions.
|
|
5
|
+
use_when:
|
|
6
|
+
- setting up lighting in a Summer Engine 3D scene — adding lights, configuring WorldEnvironment, sky, or shadows
|
|
7
|
+
- a 3D scene looks flat, too dark, or washed out, or has harsh or missing shadows
|
|
8
|
+
facets:
|
|
9
|
+
lifecycle:
|
|
10
|
+
- build
|
|
11
|
+
domains:
|
|
12
|
+
- rendering
|
|
13
|
+
- lighting
|
|
14
|
+
modalities:
|
|
15
|
+
- scenes
|
|
16
|
+
compatibility:
|
|
17
|
+
engine: ">=4.6"
|
|
18
|
+
related:
|
|
19
|
+
skills:
|
|
20
|
+
- skill/running-in-the-cloud
|
|
21
|
+
- skill/scene-scripting
|
|
22
|
+
source: official
|
|
23
|
+
license: MIT
|
|
24
|
+
status: stable
|
|
25
|
+
recommended: true
|
|
26
|
+
aliases:
|
|
27
|
+
- skills/rendering-and-lighting/3d-lighting
|
|
@@ -326,5 +326,5 @@ in Summer Engine.
|
|
|
326
326
|
- `audio/audio-direction` — defines the dynamic music plan and bus layout
|
|
327
327
|
- `audio/music-track` — generates the stems
|
|
328
328
|
- `audio/voice-line` — the voice bus that triggers ducking
|
|
329
|
-
-
|
|
329
|
+
- `../../references/godot-version/godot-version.md` — Summer compatibility for AudioServer
|
|
330
330
|
and Tween APIs
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
id: skill/adaptive-music
|
|
2
|
+
kind: skill
|
|
3
|
+
version: 1.0.2
|
|
4
|
+
summary: Wire music stems to game state — combat/explore/boss/tension crossfades on a shared bus, paired with a state machine and AudioBus structure.
|
|
5
|
+
use_when:
|
|
6
|
+
- wiring music stems to game state — combat / explore / boss / tension crossfades on a shared bus
|
|
7
|
+
- layered or vertical music that changes when combat starts
|
|
8
|
+
facets:
|
|
9
|
+
lifecycle:
|
|
10
|
+
- build
|
|
11
|
+
domains:
|
|
12
|
+
- audio
|
|
13
|
+
- gameplay
|
|
14
|
+
modalities:
|
|
15
|
+
- audio
|
|
16
|
+
- scenes
|
|
17
|
+
compatibility:
|
|
18
|
+
engine: ">=4.6"
|
|
19
|
+
related:
|
|
20
|
+
skills:
|
|
21
|
+
- skill/audio-direction
|
|
22
|
+
- skill/music-track
|
|
23
|
+
source: official
|
|
24
|
+
license: MIT
|
|
25
|
+
status: stable
|
|
26
|
+
recommended: false
|
|
27
|
+
aliases:
|
|
28
|
+
- skills/audio/adaptive-music
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: agent-playtesting
|
|
3
|
+
description: Use when proving a gameplay feature, reproducing a bug, or comparing two variants by driving the LIVE running game yourself — deterministic launch (seed, fixed_fps, offscreen instances), frame-stamped probes before and after every action, exact frame stepping, scripted or recorded input. The doctrine behind summer_game_probe, summer_game_input, summer_game_control and the summer_runtime_* tools.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Agent Playtesting
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
`playtesting-a-feature` says a feature is not done until someone has played it. This skill is how *you* play it — not a hidden probe that dies when it finishes, but the live game, driven one action at a time, with a frame-stamped record of what each action did.
|
|
11
|
+
|
|
12
|
+
The engine's runtime-control ops make the running game a thing you can see and touch:
|
|
13
|
+
|
|
14
|
+
| Tool | Does |
|
|
15
|
+
|---|---|
|
|
16
|
+
| `summer_play` | Start the game. With `instance` + `mode:"offscreen"` a disposable parallel instance; with `seed` / `fixed_fps` (and `deterministic:true` offscreen) a reproducible one. |
|
|
17
|
+
| `summer_game_probe` | State AND pixels of ONE frame, atomically: live tree, property reads, screenshot, all stamped with the same frame counters. The evidence tool. |
|
|
18
|
+
| `summer_game_control` | `pause`, `resume`, `step` exactly N physics/process frames, `speed`, `instances`. |
|
|
19
|
+
| `summer_game_input` | `script` timed synthetic input; `record_start` / `record_stop` real input into `res://.summer/replays/`; `replay` a recording (with `seed` on a deterministic instance). |
|
|
20
|
+
| `summer_runtime_set` / `summer_runtime_call` | Set a property / call a method on a live node. Actions, not evidence. |
|
|
21
|
+
| `summer_runtime_spawn` | Spawn a PackedScene into, or free a node from, the live game. |
|
|
22
|
+
| `summer_runtime_animate` | Read/drive an AnimationPlayer, an AnimationTree state machine, or read Skeleton3D bone poses. |
|
|
23
|
+
| `summer_stop` | Stop the main game, or `instance` to stop one offscreen instance. |
|
|
24
|
+
|
|
25
|
+
Every one of these needs a RUNNING game and answers `game_not_running` otherwise. On an engine build that predates them the result is `engine_lacks_op` naming the fallback — usually the `RunVerification` probe from `playtesting-a-feature`. Record that as the expected outcome, not a failure.
|
|
26
|
+
|
|
27
|
+
<EXTREMELY-IMPORTANT>
|
|
28
|
+
An action is not evidence. `summer_runtime_set` returning `applied: true`, `summer_game_input` returning `completed: true`, `summer_runtime_call` returning a value — each proves the request was honoured, not that the game did what the feature promises. Only a probe of the frame AFTER, compared with a probe of the frame BEFORE, proves motion, spawning, damage, or a state change. Never claim any of those without the two frame numbers.
|
|
29
|
+
</EXTREMELY-IMPORTANT>
|
|
30
|
+
|
|
31
|
+
## The Loop
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
Launch deterministically → Wait for boot → Probe BEFORE → Act → Step (or run) → Probe AFTER → Assert → Stop
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### 1. Launch deterministically
|
|
38
|
+
|
|
39
|
+
Decide before pressing play what the run must pin.
|
|
40
|
+
|
|
41
|
+
- **Embedded main game** (`summer_play` with no instance): the game the user sees. Add `seed` and `fixed_fps` to pin the RNG and the frame clock — `seed` only applies to a game that is not already running (`determinism.applied: false` with `reason: already_running` means `summer_stop` first).
|
|
42
|
+
- **Offscreen instance** (`summer_play {instance:"a", mode:"offscreen"}`): a hidden child process the user never sees, addressed by name on every runtime tool. Up to three at once. `deterministic: true` launches it with `--fixed-fps 60 --summer-seed <seed> --audio-driver Dummy`; this is the only kind of instance on which `summer_game_input action:"replay"` accepts a `seed`.
|
|
43
|
+
- **Two variants side by side**: `instance:"before"` and `instance:"after"` (different scenes or different `summer_runtime_set` setups), the same recorded input replayed into each, probes compared frame for frame.
|
|
44
|
+
|
|
45
|
+
The result's `determinism.seed_scope` tells you what the seed does NOT pin: `RandomNumberGenerator` instances (self-randomized on construction), scripts that call `randomize()`, wall-clock reads, thread timing. A feature that uses any of those is not deterministic under a seed; assert ranges there, or fix the script to use the global RNG.
|
|
46
|
+
|
|
47
|
+
### 2. Wait for boot — never sleep a guessed delay
|
|
48
|
+
|
|
49
|
+
Boot time varies. Confirm, do not assume:
|
|
50
|
+
|
|
51
|
+
- Main game: `summer_is_running` until it reports running.
|
|
52
|
+
- Offscreen instance: `summer_game_control action:"instances"` until the instance shows `attached: true`. Before that, every runtime op answers `request_failed` ("session has not attached yet"). `session_timeout` means the child never attached and was killed — read `summer_get_console` for its stderr.
|
|
53
|
+
|
|
54
|
+
### 3. Probe BEFORE
|
|
55
|
+
|
|
56
|
+
```
|
|
57
|
+
summer_game_probe
|
|
58
|
+
tree: {path: "/root/Main", depth: 2}
|
|
59
|
+
props: ["/root/Main/Player:position", "/root/Main/Player:velocity", "/root/Main/HUD/Health:value"]
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
Write down `frame.process_frames` and `frame.physics_frames`. Every path you will act on comes from this tree — runtime paths are absolute (`/root/Main/Player`) and differ from the edited scene when nodes spawn, rename, or reparent at runtime. Look at the screenshot and say what is in it.
|
|
63
|
+
|
|
64
|
+
### 4. Act
|
|
65
|
+
|
|
66
|
+
One action per step, so the AFTER probe attributes cleanly:
|
|
67
|
+
|
|
68
|
+
- `summer_runtime_set path:"/root/Main/Player" property:"position" value:"Vector3(0, 2, 0)"` — read `applied`. `applied: false` (`not_applied`) means a script rewrote the value the same frame, or the literal type was wrong; do not proceed as if it landed.
|
|
69
|
+
- `summer_runtime_call path:"/root/Main/Boss" method:"take_damage" args:[25]` — `return` is what the method answered; the effect still needs the probe.
|
|
70
|
+
- `summer_game_input action:"script" events:[{at_frame:0, type:"action", action:"move_right", hold_ms:500}, {at_frame:30, type:"action", action:"jump", hold_ms:50}]` — `rejected[]` names events the game refused (`unknown_action` = not in the InputMap; bind it with `summer_input_map_bind` and restart, or drive `type:"key"`). One script in flight per instance: `busy` means wait for the first.
|
|
71
|
+
- `summer_runtime_spawn action:"spawn" parent:"/root/Main/Enemies" scene:"res://enemies/goblin.tscn" props:{position:"Vector3(4, 0, -2)"}` — use the returned `node.path` from here on.
|
|
72
|
+
|
|
73
|
+
### 5. Step — for exact assertions
|
|
74
|
+
|
|
75
|
+
When "after 3 physics frames the velocity is zero" is the claim, do not let wall-clock time decide how many frames ran:
|
|
76
|
+
|
|
77
|
+
```
|
|
78
|
+
summer_game_control action:"pause"
|
|
79
|
+
summer_game_probe props:[...] # frame N
|
|
80
|
+
summer_runtime_set ... / summer_game_input ... wait:false
|
|
81
|
+
summer_game_control action:"step" frames:3 # kind "physics" (default)
|
|
82
|
+
summer_game_probe props:[...] # frame N+3 — the step draws its last frame before replying
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
The step result carries `before`, `after`, `exact`, and `overshoot`; cite them. The game stays suspended after a step — `summer_game_control action:"resume"` when you want it to run again. Time-based behaviour (a 500 ms hold, a 2 s cooldown) runs on the game's clock: with `fixed_fps` a step of N frames IS N/fps seconds; without it, use `at_ms` and read `clock_mapping` ("approximate" means the mapping went through the physics tick rate).
|
|
86
|
+
|
|
87
|
+
A minimized game window draws no frames and cannot step (`timeout`). `game_breaked` means the game sits at a script breakpoint; continue it in the debugger first.
|
|
88
|
+
|
|
89
|
+
### 6. Probe AFTER, then assert
|
|
90
|
+
|
|
91
|
+
Same probe as step 3. Compare the two:
|
|
92
|
+
|
|
93
|
+
- positions, velocities, HUD values — as inequalities (`x > before.x + 50`), never exact equality unless the run is deterministic AND frame-stepped;
|
|
94
|
+
- `tree` — the spawned node exists under its parent; the freed one is gone (a `queue_free` takes effect at the end of the frame, so step once before asserting absence);
|
|
95
|
+
- the screenshots — look at both and describe the difference in words. A tree that says "goblin spawned" and a frame that shows no goblin is a bug, not a pass.
|
|
96
|
+
|
|
97
|
+
Then `summer_get_debugger_errors` — a feature that "worked" while logging null-reference errors did not work.
|
|
98
|
+
|
|
99
|
+
### 7. Stop
|
|
100
|
+
|
|
101
|
+
`summer_stop` (main) or `summer_stop instance:"a"` for each offscreen instance you started. Offscreen children also die when the editor exits, but do not leave them for the user to discover.
|
|
102
|
+
|
|
103
|
+
## Input scripts vs. recordings
|
|
104
|
+
|
|
105
|
+
| | `action:"script"` | `record_start` / `record_stop` / `replay` |
|
|
106
|
+
|---|---|---|
|
|
107
|
+
| Source | You write it from the spec | Whatever actually happened — a human's hands or a script's output |
|
|
108
|
+
| Readable | Yes; edit a frame number and re-run | A JSON file of events; treat it as an artifact |
|
|
109
|
+
| Timing | `at_frame` exact; `at_ms` exact only with `fixed_fps` | Recorded frames re-based on the first event |
|
|
110
|
+
| Best for | Golden paths, edge probes, regression checks | "Do exactly what the user did", A/B of two builds under identical input |
|
|
111
|
+
| Reproducible | With `seed` + `fixed_fps` on the instance | With `seed` on a `deterministic:true` offscreen instance (`replay` refuses `seed` elsewhere: `nondeterministic_instance`) |
|
|
112
|
+
|
|
113
|
+
Recording caps at 20,000 events / about 1 MiB (`truncated: true` when hit). Files land in `res://.summer/replays/<id>.json`; pass that exact path to `replay`. A waited script or replay is capped at 20 s by the engine — for longer sequences pass `wait:false` and follow along with probes.
|
|
114
|
+
|
|
115
|
+
## What seed does not pin
|
|
116
|
+
|
|
117
|
+
Read `determinism.seed_scope` on the play result and believe it. Pinned: the global RNG (`randi`, `randf`, `randi_range`, `randf_range`, `randfn`, `Array.shuffle`, `Array.pick_random`), re-seeded after `SceneTree` init and before autoloads and the main scene. Not pinned: `RandomNumberGenerator` instances, scripts calling `randomize()`, wall-clock reads (`Time.get_ticks_msec` used as a source of variation), thread timing, and anything read from the network or the file system. When a replay diverges on a deterministic instance, one of these is the reason — find it in the script before doubting the tooling.
|
|
118
|
+
|
|
119
|
+
## Honesty rules
|
|
120
|
+
|
|
121
|
+
- **Cite frames.** "At frame 1834 the player was at x=12.0; after `move_right` for 30 frames, at frame 1864 x=57.3" is a verification. "The player moved" is not.
|
|
122
|
+
- **`applied: false` is a no.** Do not narrate a value change the read-back denied.
|
|
123
|
+
- **`completed: false` is a no.** The script did not finish inside the wait; probe to see how far it got, do not call it done.
|
|
124
|
+
- **`rejected[]` is part of the result.** Report the rejected events and why, even when the rest applied.
|
|
125
|
+
- **`engine_lacks_op` is the expected outcome on an engine without these ops.** Say so, fall back to the `playtesting-a-feature` probe loop, and do not describe a runtime playtest you could not run.
|
|
126
|
+
- **A screenshot you did not look at is not a screenshot.** Describe what is in it.
|
|
127
|
+
- **Parallel instances are not the user's game.** Findings from `instance:"a"` describe that instance's launch (scene, seed, fixed_fps); say which instance a claim came from.
|
|
128
|
+
- **Do not hand the walkthrough to the user** while any of these tools works. Ask a human only for what a probe cannot judge — feel, beauty, fun (`debugging-game-feel`).
|
|
129
|
+
|
|
130
|
+
## Red flags — STOP
|
|
131
|
+
|
|
132
|
+
| Red flag | Reality |
|
|
133
|
+
|---|---|
|
|
134
|
+
| Asserting motion from a `summer_runtime_set` result | applied means the write landed; probe to see the motion |
|
|
135
|
+
| One probe, then "it works" | One frame proves a state, not a change; two frames prove a change |
|
|
136
|
+
| Sleeping a fixed delay after `summer_play` | Boot varies; `summer_is_running` / `instances` `attached:true` |
|
|
137
|
+
| `position.x == 250.0` on a non-deterministic run | Assert inequality, or pin the run with `fixed_fps` + steps |
|
|
138
|
+
| Ignoring `rejected[]` because `applied > 0` | The rejected event may be the one the feature needed |
|
|
139
|
+
| `seed` on the embedded game called "deterministic" | It pins the global RNG only; `deterministic:true` needs an offscreen instance |
|
|
140
|
+
| Leaving offscreen instances running | Stop each one you started |
|
|
141
|
+
|
|
142
|
+
## Related skills
|
|
143
|
+
|
|
144
|
+
- `playtesting-a-feature` — the iron law (no shipped claim without a played walkthrough) and the `RunVerification` probe loop this skill replaces when the runtime tools exist.
|
|
145
|
+
- `verifying-scenes` — evidence discipline for the EDITED scene (snapshot, diff, screenshot).
|
|
146
|
+
- `verification-before-completion` — the code layer that must be green before any of this.
|
|
147
|
+
- `debugging-game-feel` — when the feature works but feels wrong.
|
|
148
|
+
- `investigating-bugs` — root-causing a reproducible bug once a recording reproduces it.
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
id: skill/agent-playtesting
|
|
2
|
+
kind: skill
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
summary: Playtest by driving the LIVE game — deterministic launch, frame-stamped probes before/after each action, exact frame steps, scripted or recorded input.
|
|
5
|
+
use_when:
|
|
6
|
+
- proving a gameplay feature works by driving the running game frame by frame with the runtime tools (summer_game_probe, summer_game_input, summer_game_control, summer_runtime_set/call/spawn/animate)
|
|
7
|
+
- a bug repro or an A/B needs a deterministic launch (seed, fixed frame rate, offscreen instance), a recorded input replay, or two instances side by side
|
|
8
|
+
- deciding what counts as evidence for "it moved / it fired / the node appeared" — the probe-before, probe-after, frame-stamped discipline
|
|
9
|
+
- asserting exact positions or timings by advancing the live game a physics frame at a time
|
|
10
|
+
do_not_use_when:
|
|
11
|
+
- static or code-layer checks — verification-before-completion (compile, diagnostics) comes first
|
|
12
|
+
- a hidden disposable probe run is enough or the engine build lacks the runtime-control ops (Summer Engine 0.5.66 or newer) — playtesting-a-feature's RunVerification loop still applies there
|
|
13
|
+
- the feature works but feels wrong — debugging-game-feel
|
|
14
|
+
facets:
|
|
15
|
+
lifecycle:
|
|
16
|
+
- build
|
|
17
|
+
domains:
|
|
18
|
+
- runtime
|
|
19
|
+
- playtest
|
|
20
|
+
- verification
|
|
21
|
+
- agent-workflow
|
|
22
|
+
modalities:
|
|
23
|
+
- project
|
|
24
|
+
- scenes
|
|
25
|
+
compatibility:
|
|
26
|
+
engine: ">=4.6"
|
|
27
|
+
related:
|
|
28
|
+
tools:
|
|
29
|
+
- tool/play
|
|
30
|
+
- tool/stop
|
|
31
|
+
- tool/is-running
|
|
32
|
+
- tool/game-probe
|
|
33
|
+
- tool/game-control
|
|
34
|
+
- tool/game-input
|
|
35
|
+
- tool/runtime-set
|
|
36
|
+
- tool/runtime-call
|
|
37
|
+
- tool/runtime-spawn
|
|
38
|
+
- tool/runtime-animate
|
|
39
|
+
- tool/get-runtime-tree
|
|
40
|
+
- tool/inspect-runtime-node
|
|
41
|
+
- tool/get-debugger-errors
|
|
42
|
+
- tool/screenshot
|
|
43
|
+
skills:
|
|
44
|
+
- skill/playtesting-a-feature
|
|
45
|
+
- skill/verifying-scenes
|
|
46
|
+
- skill/verification-before-completion
|
|
47
|
+
- skill/debugging-game-feel
|
|
48
|
+
- skill/investigating-bugs
|
|
49
|
+
source: official
|
|
50
|
+
license: MIT
|
|
51
|
+
status: preview
|
|
52
|
+
recommended: true
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
id: skill/ambient-bed
|
|
2
|
+
kind: skill
|
|
3
|
+
version: 1.0.2
|
|
4
|
+
summary: Generate a long looping location ambience — forest, dungeon, city, spaceship, cave — a looping AudioStreamPlayer on the Ambient bus with a seamless loop.
|
|
5
|
+
use_when:
|
|
6
|
+
- generating a long looping location ambience — forest at dawn, dungeon air, city street, spaceship hum, cave drip — non-melodic and low-energy
|
|
7
|
+
- a location feels silent and needs a continuous soundscape beneath the score and effects
|
|
8
|
+
facets:
|
|
9
|
+
lifecycle:
|
|
10
|
+
- build
|
|
11
|
+
domains:
|
|
12
|
+
- audio
|
|
13
|
+
- assets
|
|
14
|
+
modalities:
|
|
15
|
+
- audio
|
|
16
|
+
- scenes
|
|
17
|
+
compatibility:
|
|
18
|
+
engine: ">=4.6"
|
|
19
|
+
source: official
|
|
20
|
+
license: MIT
|
|
21
|
+
status: stable
|
|
22
|
+
recommended: false
|
|
23
|
+
aliases:
|
|
24
|
+
- skills/audio/ambient-bed
|