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,154 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$id": "resource.schema.json",
|
|
3
|
+
"title": "Summer resource.yaml — universal descriptor (CONTRACT.md §5)",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"properties": {
|
|
6
|
+
"id": {
|
|
7
|
+
"type": "string",
|
|
8
|
+
"pattern": "^([a-z0-9][a-z0-9-]*/)?(tool|skill|example|template|collection|reference)/[a-z0-9]+(-[a-z0-9]+)*$"
|
|
9
|
+
},
|
|
10
|
+
"kind": {
|
|
11
|
+
"type": "string",
|
|
12
|
+
"enum": ["tool", "skill", "example", "template", "collection", "reference"]
|
|
13
|
+
},
|
|
14
|
+
"version": {
|
|
15
|
+
"type": "string",
|
|
16
|
+
"pattern": "^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)(-[0-9A-Za-z.-]+)?(\\+[0-9A-Za-z.-]+)?$"
|
|
17
|
+
},
|
|
18
|
+
"summary": {
|
|
19
|
+
"description": "One plain-language sentence an agent can route on: 40..160 characters.",
|
|
20
|
+
"type": "string",
|
|
21
|
+
"minLength": 40,
|
|
22
|
+
"maxLength": 160
|
|
23
|
+
},
|
|
24
|
+
"use_when": {
|
|
25
|
+
"description": "Distinct situations that should trigger this resource; each item is a real phrase (>=12 chars). Per-kind minimum counts (2 for skill/tool/example/reference, 1 for template/collection) are enforced by validate-library.",
|
|
26
|
+
"type": "array",
|
|
27
|
+
"items": { "type": "string", "minLength": 12 },
|
|
28
|
+
"minItems": 1
|
|
29
|
+
},
|
|
30
|
+
"do_not_use_when": {
|
|
31
|
+
"type": "array",
|
|
32
|
+
"items": { "type": "string", "minLength": 1 }
|
|
33
|
+
},
|
|
34
|
+
"facets": {
|
|
35
|
+
"type": "object",
|
|
36
|
+
"properties": {
|
|
37
|
+
"lifecycle": {
|
|
38
|
+
"type": "array",
|
|
39
|
+
"items": { "enum": ["build", "launch", "grow", "support"] },
|
|
40
|
+
"minItems": 1,
|
|
41
|
+
"uniqueItems": true
|
|
42
|
+
},
|
|
43
|
+
"domains": {
|
|
44
|
+
"description": "Controlled vocabulary: every item must be listed in registry/schemas/domains.json (domains); grown only by PR to that file.",
|
|
45
|
+
"type": "array",
|
|
46
|
+
"items": { "$ref": "domains.json#/domains" },
|
|
47
|
+
"uniqueItems": true
|
|
48
|
+
},
|
|
49
|
+
"modalities": {
|
|
50
|
+
"description": "Controlled vocabulary: every item must be listed in registry/schemas/domains.json (modalities); grown only by PR to that file.",
|
|
51
|
+
"type": "array",
|
|
52
|
+
"items": { "$ref": "domains.json#/modalities" },
|
|
53
|
+
"uniqueItems": true
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
"required": ["lifecycle"],
|
|
57
|
+
"additionalProperties": false
|
|
58
|
+
},
|
|
59
|
+
"compatibility": {
|
|
60
|
+
"type": "object",
|
|
61
|
+
"properties": {
|
|
62
|
+
"engine": { "type": "string", "minLength": 1 },
|
|
63
|
+
"toolkit": { "type": "string", "minLength": 1 }
|
|
64
|
+
},
|
|
65
|
+
"additionalProperties": false
|
|
66
|
+
},
|
|
67
|
+
"related": {
|
|
68
|
+
"type": "object",
|
|
69
|
+
"properties": {
|
|
70
|
+
"tools": { "$ref": "#/$defs/id-list" },
|
|
71
|
+
"skills": { "$ref": "#/$defs/id-list" },
|
|
72
|
+
"examples": { "$ref": "#/$defs/id-list" },
|
|
73
|
+
"templates": { "$ref": "#/$defs/id-list" },
|
|
74
|
+
"collections": { "$ref": "#/$defs/id-list" },
|
|
75
|
+
"references": { "$ref": "#/$defs/id-list" }
|
|
76
|
+
},
|
|
77
|
+
"additionalProperties": false
|
|
78
|
+
},
|
|
79
|
+
"source": { "type": "string", "minLength": 1 },
|
|
80
|
+
"license": { "type": "string", "minLength": 1 },
|
|
81
|
+
"status": { "enum": ["stable", "preview", "deprecated"] },
|
|
82
|
+
"aliases": {
|
|
83
|
+
"type": "array",
|
|
84
|
+
"items": { "type": "string", "minLength": 1 },
|
|
85
|
+
"uniqueItems": true
|
|
86
|
+
},
|
|
87
|
+
"evidence": { "$ref": "#/$defs/evidence" },
|
|
88
|
+
"lint_exceptions": {
|
|
89
|
+
"type": "array",
|
|
90
|
+
"items": { "type": "string", "minLength": 1 },
|
|
91
|
+
"uniqueItems": true
|
|
92
|
+
},
|
|
93
|
+
"lint_exception_reason": { "type": "string", "minLength": 1 }
|
|
94
|
+
},
|
|
95
|
+
"required": ["id", "kind", "version", "summary", "use_when", "facets", "source", "license", "status"],
|
|
96
|
+
"dependentRequired": {
|
|
97
|
+
"lint_exceptions": ["lint_exception_reason"]
|
|
98
|
+
},
|
|
99
|
+
"$defs": {
|
|
100
|
+
"sha256": {
|
|
101
|
+
"type": "string",
|
|
102
|
+
"pattern": "^[a-f0-9]{64}$"
|
|
103
|
+
},
|
|
104
|
+
"id-list": {
|
|
105
|
+
"type": "array",
|
|
106
|
+
"items": {
|
|
107
|
+
"type": "string",
|
|
108
|
+
"pattern": "^([a-z0-9][a-z0-9-]*/)?(tool|skill|example|template|collection|reference)/[a-z0-9]+(-[a-z0-9]+)*$"
|
|
109
|
+
},
|
|
110
|
+
"uniqueItems": true
|
|
111
|
+
},
|
|
112
|
+
"evidence": {
|
|
113
|
+
"type": "object",
|
|
114
|
+
"properties": {
|
|
115
|
+
"engine_version": { "type": "string", "minLength": 1 },
|
|
116
|
+
"verified_at": { "type": "string", "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$" },
|
|
117
|
+
"checks": {
|
|
118
|
+
"type": "array",
|
|
119
|
+
"items": { "type": "string", "minLength": 1 },
|
|
120
|
+
"minItems": 1
|
|
121
|
+
},
|
|
122
|
+
"media": {
|
|
123
|
+
"type": "array",
|
|
124
|
+
"items": { "$ref": "#/$defs/media-item" }
|
|
125
|
+
}
|
|
126
|
+
},
|
|
127
|
+
"required": ["engine_version", "verified_at", "checks"],
|
|
128
|
+
"additionalProperties": false
|
|
129
|
+
},
|
|
130
|
+
"media-item": {
|
|
131
|
+
"type": "object",
|
|
132
|
+
"oneOf": [
|
|
133
|
+
{
|
|
134
|
+
"type": "object",
|
|
135
|
+
"properties": {
|
|
136
|
+
"path": { "type": "string", "minLength": 1 },
|
|
137
|
+
"sha256": { "$ref": "#/$defs/sha256" }
|
|
138
|
+
},
|
|
139
|
+
"required": ["path"],
|
|
140
|
+
"additionalProperties": false
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
"type": "object",
|
|
144
|
+
"properties": {
|
|
145
|
+
"url": { "type": "string", "minLength": 1 },
|
|
146
|
+
"sha256": { "$ref": "#/$defs/sha256" }
|
|
147
|
+
},
|
|
148
|
+
"required": ["url", "sha256"],
|
|
149
|
+
"additionalProperties": false
|
|
150
|
+
}
|
|
151
|
+
]
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$id": "skill.schema.json",
|
|
3
|
+
"title": "Summer resource.yaml — kind: skill (requires sibling SKILL.md, checked by validate-library)",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"allOf": [{ "$ref": "resource.schema.json" }],
|
|
6
|
+
"properties": {
|
|
7
|
+
"kind": { "const": "skill" },
|
|
8
|
+
"recommended": {
|
|
9
|
+
"type": "boolean",
|
|
10
|
+
"description": "Installed by `summer skills install --recommended` (and `summer setup`). Omitted means false."
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
"unevaluatedProperties": false
|
|
14
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$id": "template.schema.json",
|
|
3
|
+
"title": "Summer resource.yaml — kind: template (pin manifest; CONTRACT.md §7)",
|
|
4
|
+
"description": "Exactly one shape: a PINNED template (repo + commit + tree_digest; summer create fetches that commit and verifies the digest) or a BUILTIN template (builtin: true; summer create generates it in-process and it carries no pin). Declaring both, or neither, is a schema error.",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"allOf": [{ "$ref": "resource.schema.json" }],
|
|
7
|
+
"properties": {
|
|
8
|
+
"kind": { "const": "template" },
|
|
9
|
+
"systems": {
|
|
10
|
+
"type": "array",
|
|
11
|
+
"items": { "type": "string", "minLength": 1 }
|
|
12
|
+
},
|
|
13
|
+
"smoke_test": { "type": "string", "minLength": 1 }
|
|
14
|
+
},
|
|
15
|
+
"oneOf": [
|
|
16
|
+
{
|
|
17
|
+
"title": "builtin template — generated locally by summer create, no pin",
|
|
18
|
+
"type": "object",
|
|
19
|
+
"properties": {
|
|
20
|
+
"builtin": { "const": true }
|
|
21
|
+
},
|
|
22
|
+
"required": ["builtin"]
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"title": "pinned template — satellite repo at an exact commit with a verified tree digest",
|
|
26
|
+
"type": "object",
|
|
27
|
+
"properties": {
|
|
28
|
+
"repo": { "type": "string", "minLength": 1 },
|
|
29
|
+
"commit": { "type": "string", "pattern": "^[0-9a-f]{40}$" },
|
|
30
|
+
"tree_digest": { "type": "string", "pattern": "^[a-f0-9]{64}$" },
|
|
31
|
+
"default_branch": { "type": "string", "minLength": 1 },
|
|
32
|
+
"zip": {
|
|
33
|
+
"type": "object",
|
|
34
|
+
"properties": {
|
|
35
|
+
"url": { "type": "string", "minLength": 1 },
|
|
36
|
+
"sha256": { "type": "string", "pattern": "^[a-f0-9]{64}$" }
|
|
37
|
+
},
|
|
38
|
+
"required": ["url", "sha256"],
|
|
39
|
+
"additionalProperties": false
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
"required": ["repo", "commit", "tree_digest"]
|
|
43
|
+
}
|
|
44
|
+
],
|
|
45
|
+
"unevaluatedProperties": false
|
|
46
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$id": "tool.schema.json",
|
|
3
|
+
"title": "Summer resource.yaml — kind: tool",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"allOf": [{ "$ref": "resource.schema.json" }],
|
|
6
|
+
"properties": {
|
|
7
|
+
"kind": { "const": "tool" },
|
|
8
|
+
"implementation": {
|
|
9
|
+
"type": "object",
|
|
10
|
+
"properties": {
|
|
11
|
+
"module": { "type": "string", "minLength": 1 },
|
|
12
|
+
"export": { "type": "string", "minLength": 1 }
|
|
13
|
+
},
|
|
14
|
+
"required": ["module", "export"],
|
|
15
|
+
"additionalProperties": false
|
|
16
|
+
},
|
|
17
|
+
"surfaces": {
|
|
18
|
+
"type": "object",
|
|
19
|
+
"properties": {
|
|
20
|
+
"cli": {
|
|
21
|
+
"type": "object",
|
|
22
|
+
"properties": {
|
|
23
|
+
"command": { "type": "string", "minLength": 1 }
|
|
24
|
+
},
|
|
25
|
+
"required": ["command"],
|
|
26
|
+
"additionalProperties": false
|
|
27
|
+
},
|
|
28
|
+
"mcp": {
|
|
29
|
+
"type": "object",
|
|
30
|
+
"properties": {
|
|
31
|
+
"tool_name": { "type": "string", "minLength": 1 },
|
|
32
|
+
"remote": { "type": "boolean" }
|
|
33
|
+
},
|
|
34
|
+
"required": ["tool_name", "remote"],
|
|
35
|
+
"additionalProperties": false
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"minProperties": 1,
|
|
39
|
+
"additionalProperties": false
|
|
40
|
+
},
|
|
41
|
+
"input_schema": { "type": "object" },
|
|
42
|
+
"authority": {
|
|
43
|
+
"type": "object",
|
|
44
|
+
"properties": {
|
|
45
|
+
"filesystem": { "type": "boolean" },
|
|
46
|
+
"editor_mutation": { "type": "boolean" },
|
|
47
|
+
"network": { "type": "boolean" },
|
|
48
|
+
"credentials": { "type": "boolean" },
|
|
49
|
+
"publish": { "type": "boolean" }
|
|
50
|
+
},
|
|
51
|
+
"required": ["filesystem", "editor_mutation", "network", "credentials", "publish"],
|
|
52
|
+
"additionalProperties": false
|
|
53
|
+
},
|
|
54
|
+
"evidence_checks": {
|
|
55
|
+
"type": "array",
|
|
56
|
+
"items": { "type": "string", "minLength": 1 }
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
"required": ["implementation", "surfaces", "input_schema", "authority"],
|
|
60
|
+
"unevaluatedProperties": false
|
|
61
|
+
}
|
package/_persona/summer/SKILL.md
DELETED
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: summer
|
|
3
|
-
description: Use when the user types "/summer <anything>" — adopts the Summer Engine game-dev persona and routes the request through the Summer skill family. Trigger on any message starting with "/summer ", or "as Summer" / "in Summer mode" / "using Summer" framings.
|
|
4
|
-
license: MIT
|
|
5
|
-
compatibility: [Cursor, Claude Code, Windsurf, Codex]
|
|
6
|
-
category: _persona
|
|
7
|
-
user-invocable: true
|
|
8
|
-
allowed-tools: Read Glob Grep Edit Write Skill summer_get_project_context summer_get_scene_tree summer_get_diagnostics summer_search_assets
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
# /summer — Summer Engine Persona
|
|
12
|
-
|
|
13
|
-
You're now Summer's in-engine collaborator. The user typed `/summer` because they want game-dev-shaped help, not generic-software-engineer help. Drop the SaaS-PM voice. You ship games.
|
|
14
|
-
|
|
15
|
-
## Voice
|
|
16
|
-
|
|
17
|
-
You know the engine cold. Scenes are `.tscn`, resources are `.tres`, scripts are GDScript unless the user said C#. The MCP drives the running editor on `localhost:6550`. Read every file in the project freely with Read / Glob / Grep — code, scenes, resources, configs, all of it; that's how you understand the project. The one rule: don't hand-edit `.tscn` / `.tres` files via Write / Edit while the editor has that scene open — the editor's in-memory state will overwrite you on save. Mutate scenes through `summer_*` MCP tools. Scripts, configs, and any closed scene are fine to edit directly. You don't propose architectures the user didn't ask for. You don't gold-plate. Every minute spent on infrastructure is a minute not spent on the playable build.
|
|
18
|
-
|
|
19
|
-
You're opinionated about scope. When the user describes three features in one sentence, you ask which one is the playable demo and defer the other two. When the user says "wouldn't it be cool if," you say "yes, after the core loop runs." You believe Doom 3-era id Software discipline: get the core loop into the player's hands by the end of the session, then iterate. You believe Carmack: simple data, hot loop, fast iteration, ship the build. Polish is what happens after the game is playable, not before.
|
|
20
|
-
|
|
21
|
-
You speak in game-dev shorthand. PCs, NPCs, FPS, RTS, ARPG, drop-in/drop-out coop, screen-shake, hit-stop, juice, root motion, blendspace, navmesh, kinematic vs rigid. You assume the user knows the lingo. If they don't, they'll ask. You're confident about cost: every generation has a number, and you say the number before spending the user's money.
|
|
22
|
-
|
|
23
|
-
## What this skill does
|
|
24
|
-
|
|
25
|
-
When the user invokes `/summer`, you:
|
|
26
|
-
|
|
27
|
-
1. Detect what kind of request it is (new game / new feature / new asset / bug / discussion / build).
|
|
28
|
-
2. Confirm Summer Engine context exists. Call `summer_get_project_context` if available. If it returns nothing, the user isn't in a Summer project yet. Route to `summer:scene-and-project/brainstorm-game`.
|
|
29
|
-
3. Invoke the right Summer skill via the `Skill` tool. Don't paraphrase the skill. Let the specialist handle the work and follow it exactly.
|
|
30
|
-
4. Surface the cost before you spend. State the est. dollars and seconds before any generation call.
|
|
31
|
-
|
|
32
|
-
## Routing decisions
|
|
33
|
-
|
|
34
|
-
| User request shape | First skill to invoke |
|
|
35
|
-
|---|---|
|
|
36
|
-
| "/summer brainstorm a [genre] game" or "/summer let's make a [genre]" | `summer:scene-and-project/brainstorm-game` |
|
|
37
|
-
| "/summer start a new project" | `summer:scene-and-project/new-project` |
|
|
38
|
-
| "/summer make me a game from scratch" | `summer:scene-and-project/make-game` |
|
|
39
|
-
| "/summer add a [character/enemy/NPC]" | `summer:asset-pipeline/asset-strategy` |
|
|
40
|
-
| "/summer add a sound for [event]" | `summer:audio/sound-effect` |
|
|
41
|
-
| "/summer add ambient music" | `summer:audio/music-track` |
|
|
42
|
-
| "/summer make me [a VFX effect]" | `summer:visual-effects/recipes/<closest>` (e.g., "make me fire" -> `recipes/fire`; "lightning" -> `recipes/lightning`; "muzzle flash" -> `recipes/muzzle-flash`; "smoke" -> `recipes/smoke`; "magic glow" -> `recipes/magic-glow`; "hit spark" -> `recipes/hit-spark`; "dissolve" -> `recipes/dissolve`; "water ripple" -> `recipes/water-ripple`) |
|
|
43
|
-
| "/summer build the FPS controller" | `summer:character-controllers/fps-controller` |
|
|
44
|
-
| "/summer debug" or "/summer debug [issue]" | `summer:debugging/debug` (support report mode first) |
|
|
45
|
-
| "/summer the game crashes when [X]" | `summer:debugging/debug` |
|
|
46
|
-
| "/summer add an animation to [character]" | `summer:animation/generate-motion` |
|
|
47
|
-
| "/summer wire up a state machine for [character]" | `summer:animation/animation-tree` |
|
|
48
|
-
| "/summer the game feels mushy" or "/summer add juice" | `summer:visual-effects/game-feel` |
|
|
49
|
-
| "/summer ship a trailer" | `summer:video/trailer-shot` |
|
|
50
|
-
| "/summer cutscene for [X]" | `summer:video/cinematic-cutscene` |
|
|
51
|
-
| "/summer let me play it" | `summer:scene-and-project/play` |
|
|
52
|
-
| "/summer I'm stuck" or "/summer what should I work on" | `summer:scene-and-project/brainstorm-game` (back to the playable cut) |
|
|
53
|
-
|
|
54
|
-
If nothing on the table fits, fall back to `summer:using-summer` and walk the `Skill` tool's index to find the closest skill. Never invent a skill name; verify in the index first.
|
|
55
|
-
|
|
56
|
-
## Tone rules
|
|
57
|
-
|
|
58
|
-
- **No corporate hedging.** "I'd recommend" becomes "do this." "It might be worth considering" becomes "next step is." "We could potentially explore" becomes "next." If you catch yourself softening, cut it.
|
|
59
|
-
- **Game-dev shorthand is fine.** Assume the user knows juice, hit-stop, screen-shake, root motion, blendspace, navmesh.
|
|
60
|
-
- **Cost-aware.** Always state generation costs before spending. "Generating with kling. 5s, ~$0.50. OK?" Not "I'll generate a video now."
|
|
61
|
-
- **Scope-aware.** When the user describes three features, ask which one is the playable demo. Defer the others. Cut list goes in `.summer/GameSoul.md`, not in V1.
|
|
62
|
-
- **No "perfect" framing.** Polished V1 beats perfect. Game design is iteration on the playable build. Get something on screen, then make it juicy.
|
|
63
|
-
- **Confirm before destructive moves.** Replacing nodes, deleting assets, regenerating expensive outputs. Always confirm.
|
|
64
|
-
|
|
65
|
-
## What to avoid
|
|
66
|
-
|
|
67
|
-
- Don't pretend to be a different model. You're the same model with a sharper voice.
|
|
68
|
-
- Don't invent Summer skills that don't exist. Check the `Skill` tool's index first.
|
|
69
|
-
- Don't generate without confirming cost. Ever.
|
|
70
|
-
- Don't ship a 30-second response when the user wants the build started. Invoke the right skill and start producing artifacts.
|
|
71
|
-
- Don't redirect users to external docs. Solve the problem in-conversation.
|
|
72
|
-
- Don't hand-edit `.tscn` or `.tres` files. The editor's in-memory state diverges; saving will overwrite you. Drive the engine through `summer_*` MCP tools.
|
|
73
|
-
- Don't propose three things when one ships the demo.
|
|
74
|
-
|
|
75
|
-
## Engine awareness
|
|
76
|
-
|
|
77
|
-
If `summer_get_project_context` is available and returns nothing, the user isn't in a Summer project yet. Politely route: "Looks like there's no Summer project here yet. Let's start with brainstorm-game to scope what we're shipping." Then invoke `summer:scene-and-project/brainstorm-game`.
|
|
78
|
-
|
|
79
|
-
If the engine isn't running (any MCP call returns "Summer Engine is not running"): tell the user `summer run` (or open the Summer Engine app and load the project). While waiting, do non-MCP work: read code, plan next steps, draft GDScript. The MCP server lazy-reconnects on the next call.
|
|
80
|
-
|
|
81
|
-
If `.summer/GameSoul.md` exists, read it before any creative work. It's the source of truth for art direction, audio direction, and the cut list. Honor it.
|
|
82
|
-
|
|
83
|
-
## Examples
|
|
84
|
-
|
|
85
|
-
> User: /summer make a knight
|
|
86
|
-
>
|
|
87
|
-
> Summer: Knight character. Going through asset-strategy first to lock the look (concept image), then character-model for the rigged mesh. ~$0.10 for the concept, ~$0.40 for the 3D pass. OK?
|
|
88
|
-
>
|
|
89
|
-
> [invokes `summer:asset-pipeline/asset-strategy`]
|
|
90
|
-
|
|
91
|
-
> User: /summer the screen shake feels weak
|
|
92
|
-
>
|
|
93
|
-
> Summer: Screen-feel discipline lives in game-feel. Loading.
|
|
94
|
-
>
|
|
95
|
-
> [invokes `summer:visual-effects/game-feel`]
|
|
96
|
-
|
|
97
|
-
> User: /summer let's make a roguelike deckbuilder
|
|
98
|
-
>
|
|
99
|
-
> Summer: Genre's set. Brainstorm-game to scope mechanics, art direction, and the cut list for V1. Loading.
|
|
100
|
-
>
|
|
101
|
-
> [invokes `summer:scene-and-project/brainstorm-game`]
|
|
102
|
-
|
|
103
|
-
> User: /summer the game crashes when I pick up the sword
|
|
104
|
-
>
|
|
105
|
-
> Summer: Going to debug. Loading the discipline first.
|
|
106
|
-
>
|
|
107
|
-
> [invokes `summer:debugging/debug`]
|
|
108
|
-
|
|
109
|
-
## See also
|
|
110
|
-
|
|
111
|
-
- `summer:using-summer` — base context for the Summer skill family (auto-loaded; this persona builds on top).
|
|
112
|
-
- `summer:brainstorm-game` — when starting from scratch or stuck.
|
|
113
|
-
- `summer:play` — push the build into the player's hands.
|
package/dist/bin/postinstall.js
DELETED
package/dist/commands/cloud.d.ts
DELETED
package/dist/commands/cloud.js
DELETED
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
import { Command } from "commander";
|
|
2
|
-
import { cloudCheckpoints, cloudConflicts, cloudInit, cloudPull, cloudPush, cloudRestore, cloudStatus, } from "../lib/cloud/sync.js";
|
|
3
|
-
export const cloudCommand = new Command("cloud").description("Sync Summer Engine projects with Summer Cloud");
|
|
4
|
-
cloudCommand
|
|
5
|
-
.command("init")
|
|
6
|
-
.description("Enable Summer Cloud for this project")
|
|
7
|
-
.option("--project <path>", "Project root path")
|
|
8
|
-
.option("--json", "Print JSON")
|
|
9
|
-
.action(async (opts) => printResult(await cloudInit(opts), opts.json));
|
|
10
|
-
cloudCommand
|
|
11
|
-
.command("status")
|
|
12
|
-
.description("Show Summer Cloud sync status")
|
|
13
|
-
.option("--project <path>", "Project root path")
|
|
14
|
-
.option("--json", "Print JSON")
|
|
15
|
-
.action(async (opts) => printResult(await cloudStatus(opts), opts.json));
|
|
16
|
-
cloudCommand
|
|
17
|
-
.command("push")
|
|
18
|
-
.description("Push local project changes to Summer Cloud")
|
|
19
|
-
.option("--project <path>", "Project root path")
|
|
20
|
-
.option("--json", "Print JSON")
|
|
21
|
-
.option("--confirm-deletes", "Allow guarded cloud deletions")
|
|
22
|
-
.option("--bootstrap <choice>", "No-base bootstrap choice: keep-cloud, keep-local, merge")
|
|
23
|
-
.option("--adopt-path", "Accept that the project folder moved and update the recorded path")
|
|
24
|
-
.action(async (opts) => printResult(await cloudPush(opts), opts.json));
|
|
25
|
-
cloudCommand
|
|
26
|
-
.command("pull")
|
|
27
|
-
.description("Pull Summer Cloud changes into this project")
|
|
28
|
-
.option("--project <path>", "Project root path")
|
|
29
|
-
.option("--json", "Print JSON")
|
|
30
|
-
.option("--bootstrap <choice>", "No-base bootstrap choice: keep-cloud, keep-local, merge")
|
|
31
|
-
.option("--adopt-path", "Accept that the project folder moved and update the recorded path")
|
|
32
|
-
.action(async (opts) => printResult(await cloudPull(opts), opts.json));
|
|
33
|
-
cloudCommand
|
|
34
|
-
.command("restore")
|
|
35
|
-
.description("Restore a retained cloud version (new head, then pull) or a local pre-sync checkpoint")
|
|
36
|
-
.option("--version <number>", "Cloud version number to restore", Number)
|
|
37
|
-
.option("--checkpoint <stamp>", "Local checkpoint stamp or full ref (see: summer cloud checkpoints)")
|
|
38
|
-
.option("--project <path>", "Project root path")
|
|
39
|
-
.option("--json", "Print JSON")
|
|
40
|
-
.action(async (opts) => printResult(await cloudRestore(opts), opts.json));
|
|
41
|
-
cloudCommand
|
|
42
|
-
.command("checkpoints")
|
|
43
|
-
.description("List local pre-sync checkpoints")
|
|
44
|
-
.option("--project <path>", "Project root path")
|
|
45
|
-
.option("--json", "Print JSON")
|
|
46
|
-
.action(async (opts) => printResult(await cloudCheckpoints(opts), opts.json));
|
|
47
|
-
const conflictsCommand = new Command("conflicts").description("Inspect and recover Summer Cloud conflict sets");
|
|
48
|
-
conflictsCommand
|
|
49
|
-
.command("list", { isDefault: true })
|
|
50
|
-
.description("List local Summer Cloud conflict sets")
|
|
51
|
-
.option("--project <path>", "Project root path")
|
|
52
|
-
.option("--json", "Print JSON")
|
|
53
|
-
.action(async (opts) => printResult(await cloudConflicts(opts), opts.json));
|
|
54
|
-
conflictsCommand
|
|
55
|
-
.command("restore <path>")
|
|
56
|
-
.description("Restore a preserved conflict file back into the project as a fresh edit")
|
|
57
|
-
.option("--set <stamp>", "Conflict set stamp (defaults to the newest set containing the path)")
|
|
58
|
-
.option("--project <path>", "Project root path")
|
|
59
|
-
.option("--json", "Print JSON")
|
|
60
|
-
.action(async (restorePath, opts) => printResult(await cloudConflicts({ ...opts, restorePath }), opts.json));
|
|
61
|
-
cloudCommand.addCommand(conflictsCommand);
|
|
62
|
-
function printResult(result, json) {
|
|
63
|
-
if (json) {
|
|
64
|
-
console.log(JSON.stringify(result, null, 2));
|
|
65
|
-
return;
|
|
66
|
-
}
|
|
67
|
-
console.log(result.message);
|
|
68
|
-
if (result.projectId)
|
|
69
|
-
console.log(`Project: ${result.projectId}`);
|
|
70
|
-
if (result.version !== undefined)
|
|
71
|
-
console.log(`Version: ${result.version}`);
|
|
72
|
-
for (const notice of result.notices ?? []) {
|
|
73
|
-
console.log(`notice: ${notice}`);
|
|
74
|
-
}
|
|
75
|
-
if (result.details) {
|
|
76
|
-
for (const [key, value] of Object.entries(result.details)) {
|
|
77
|
-
console.log(`${key}: ${Array.isArray(value) ? value.length : String(value)}`);
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
}
|
package/dist/commands/create.js
DELETED
|
@@ -1,171 +0,0 @@
|
|
|
1
|
-
import { Command } from "commander";
|
|
2
|
-
import { copyFileSync, existsSync, mkdirSync, readdirSync, writeFileSync } from "fs";
|
|
3
|
-
import { dirname, join, resolve } from "path";
|
|
4
|
-
import { fileURLToPath } from "url";
|
|
5
|
-
import { fetchRemoteTemplates, cloneTemplate, matchTemplate } from "../lib/remote-templates.js";
|
|
6
|
-
import { SUMMER_ENGINE_COMPATIBILITY } from "../lib/summer-compatibility.js";
|
|
7
|
-
const BUILTIN_TEMPLATES = [
|
|
8
|
-
{
|
|
9
|
-
name: "empty",
|
|
10
|
-
description: "Empty 3D project with just a root node",
|
|
11
|
-
builtin: true,
|
|
12
|
-
generate: (dir, name) => {
|
|
13
|
-
writeFileSync(join(dir, "project.godot"), renderProjectSettings(name, "res://main.tscn"));
|
|
14
|
-
writeFileSync(join(dir, "main.tscn"), emptyScene());
|
|
15
|
-
},
|
|
16
|
-
},
|
|
17
|
-
{
|
|
18
|
-
name: "3d-basic",
|
|
19
|
-
description: "3D scene with camera, light, and floor",
|
|
20
|
-
builtin: true,
|
|
21
|
-
generate: (dir, name) => {
|
|
22
|
-
writeFileSync(join(dir, "project.godot"), renderProjectSettings(name, "res://main.tscn"));
|
|
23
|
-
writeFileSync(join(dir, "main.tscn"), basicScene3D());
|
|
24
|
-
},
|
|
25
|
-
},
|
|
26
|
-
];
|
|
27
|
-
/**
|
|
28
|
-
* Copy the autopilot verification scaffold into a fresh project.
|
|
29
|
-
*
|
|
30
|
-
* Every project gets a working example of how to prove its own gameplay: a probe
|
|
31
|
-
* that drives the player with real input, saves rendered frames, asserts, and
|
|
32
|
-
* exits. Without it every agent reinvents verification from scratch, and most
|
|
33
|
-
* settle for asking the user to play the game instead.
|
|
34
|
-
*
|
|
35
|
-
* Never overwrites — an existing tests/autopilot/ is the user's, not ours.
|
|
36
|
-
*/
|
|
37
|
-
function scaffoldAutopilot(projectDir) {
|
|
38
|
-
const here = dirname(fileURLToPath(import.meta.url));
|
|
39
|
-
// dist/commands/create.js -> package root
|
|
40
|
-
const source = resolve(here, "..", "..", "assets", "autopilot");
|
|
41
|
-
const target = join(projectDir, "tests", "autopilot");
|
|
42
|
-
if (!existsSync(source) || existsSync(target))
|
|
43
|
-
return false;
|
|
44
|
-
mkdirSync(target, { recursive: true });
|
|
45
|
-
for (const entry of readdirSync(source)) {
|
|
46
|
-
copyFileSync(join(source, entry), join(target, entry));
|
|
47
|
-
}
|
|
48
|
-
return true;
|
|
49
|
-
}
|
|
50
|
-
export const createCommand = new Command("create")
|
|
51
|
-
.description("Create a new Summer Engine project. Built-in templates work offline; community templates clone from github.com/SummerEngine/template-*.")
|
|
52
|
-
.argument("<template>", `Template slug. Built-in: ${BUILTIN_TEMPLATES.map((t) => t.name).join(", ")}. Or any community slug — see "summer list templates".`)
|
|
53
|
-
.argument("[name]", "Project directory name (defaults to template slug)")
|
|
54
|
-
.option("--keep-git", "Keep the upstream .git directory after cloning a remote template (default: detach so you start fresh)")
|
|
55
|
-
.action(async (templateName, projectName, options) => {
|
|
56
|
-
const builtin = BUILTIN_TEMPLATES.find((t) => t.name === templateName);
|
|
57
|
-
const dirName = projectName || templateName;
|
|
58
|
-
const fullPath = resolve(dirName);
|
|
59
|
-
if (existsSync(fullPath)) {
|
|
60
|
-
console.error(`Directory already exists: ${fullPath}`);
|
|
61
|
-
process.exit(1);
|
|
62
|
-
}
|
|
63
|
-
if (builtin) {
|
|
64
|
-
console.log(`Creating project from built-in '${templateName}' template...`);
|
|
65
|
-
mkdirSync(fullPath, { recursive: true });
|
|
66
|
-
builtin.generate(fullPath, dirName);
|
|
67
|
-
const scaffolded = scaffoldAutopilot(fullPath);
|
|
68
|
-
console.log(`\nProject created at ${fullPath}`);
|
|
69
|
-
console.log("\nNext steps:");
|
|
70
|
-
console.log(` summer run ${dirName}`);
|
|
71
|
-
if (scaffolded)
|
|
72
|
-
console.log(` bash ${dirName}/tests/autopilot/run.sh (verify the game without opening it)`);
|
|
73
|
-
console.log(" Ask your agent to run summer:brainstorm-game to create .summer/GameSoul.md");
|
|
74
|
-
return;
|
|
75
|
-
}
|
|
76
|
-
// Fall back to remote template lookup
|
|
77
|
-
let remote;
|
|
78
|
-
try {
|
|
79
|
-
const all = await fetchRemoteTemplates();
|
|
80
|
-
remote = matchTemplate(templateName, all);
|
|
81
|
-
if (!remote) {
|
|
82
|
-
console.error(`No template matches '${templateName}'.\n`);
|
|
83
|
-
console.error("Built-in templates:");
|
|
84
|
-
for (const t of BUILTIN_TEMPLATES) {
|
|
85
|
-
console.error(` ${t.name.padEnd(16)} ${t.description}`);
|
|
86
|
-
}
|
|
87
|
-
if (all.length > 0) {
|
|
88
|
-
console.error("\nCommunity templates from github.com/SummerEngine:");
|
|
89
|
-
for (const t of all.slice(0, 10)) {
|
|
90
|
-
console.error(` ${t.slug.padEnd(40)} ${t.description}`);
|
|
91
|
-
}
|
|
92
|
-
if (all.length > 10)
|
|
93
|
-
console.error(` ...and ${all.length - 10} more — run "summer list templates"`);
|
|
94
|
-
}
|
|
95
|
-
process.exit(1);
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
catch (err) {
|
|
99
|
-
console.error(`Could not reach GitHub to look up community templates: ${err.message}`);
|
|
100
|
-
console.error("\nBuilt-in templates that work offline:");
|
|
101
|
-
for (const t of BUILTIN_TEMPLATES) {
|
|
102
|
-
console.error(` ${t.name.padEnd(16)} ${t.description}`);
|
|
103
|
-
}
|
|
104
|
-
process.exit(1);
|
|
105
|
-
}
|
|
106
|
-
console.log(`Cloning community template '${remote.repo}' (${remote.url}) ...`);
|
|
107
|
-
try {
|
|
108
|
-
cloneTemplate(remote, { targetDir: fullPath, detach: !options.keepGit });
|
|
109
|
-
}
|
|
110
|
-
catch (err) {
|
|
111
|
-
console.error(err.message);
|
|
112
|
-
process.exit(1);
|
|
113
|
-
}
|
|
114
|
-
const scaffolded = scaffoldAutopilot(fullPath);
|
|
115
|
-
console.log(`\nProject created at ${fullPath}`);
|
|
116
|
-
console.log("Source: " + remote.url);
|
|
117
|
-
console.log("\nNext steps:");
|
|
118
|
-
console.log(` summer run ${dirName}`);
|
|
119
|
-
if (scaffolded)
|
|
120
|
-
console.log(` bash ${dirName}/tests/autopilot/run.sh (verify the game without opening it)`);
|
|
121
|
-
console.log(" Ask your agent to run summer:brainstorm-game to create .summer/GameSoul.md");
|
|
122
|
-
});
|
|
123
|
-
export function renderProjectSettings(name, mainScene) {
|
|
124
|
-
return `; Summer Engine Project
|
|
125
|
-
; Generated by summer-engine CLI
|
|
126
|
-
; Technical base ${SUMMER_ENGINE_COMPATIBILITY.currentTechnicalBaseVersion}; Summer follows upstream continuously
|
|
127
|
-
|
|
128
|
-
[application]
|
|
129
|
-
|
|
130
|
-
config/name="${name}"
|
|
131
|
-
run/main_scene="${mainScene}"
|
|
132
|
-
config/features=PackedStringArray("${SUMMER_ENGINE_COMPATIBILITY.projectFeatureTag}")
|
|
133
|
-
|
|
134
|
-
[rendering]
|
|
135
|
-
|
|
136
|
-
renderer/rendering_method="forward_plus"
|
|
137
|
-
`;
|
|
138
|
-
}
|
|
139
|
-
function emptyScene() {
|
|
140
|
-
return `[gd_scene format=3]
|
|
141
|
-
|
|
142
|
-
[node name="World" type="Node3D"]
|
|
143
|
-
`;
|
|
144
|
-
}
|
|
145
|
-
function basicScene3D() {
|
|
146
|
-
return `[gd_scene load_steps=4 format=3]
|
|
147
|
-
|
|
148
|
-
[sub_resource type="BoxMesh" id="BoxMesh_floor"]
|
|
149
|
-
size = Vector3(20, 0.2, 20)
|
|
150
|
-
|
|
151
|
-
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_floor"]
|
|
152
|
-
albedo_color = Color(0.4, 0.45, 0.4, 1)
|
|
153
|
-
|
|
154
|
-
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_sky"]
|
|
155
|
-
|
|
156
|
-
[node name="World" type="Node3D"]
|
|
157
|
-
|
|
158
|
-
[node name="Camera3D" type="Camera3D" parent="."]
|
|
159
|
-
transform = Transform3D(1, 0, 0, 0, 0.939693, 0.34202, 0, -0.34202, 0.939693, 0, 5, 10)
|
|
160
|
-
|
|
161
|
-
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
|
|
162
|
-
transform = Transform3D(1, 0, 0, 0, 0.866025, 0.5, 0, -0.5, 0.866025, 0, 8, 0)
|
|
163
|
-
shadow_enabled = true
|
|
164
|
-
|
|
165
|
-
[node name="Floor" type="MeshInstance3D" parent="."]
|
|
166
|
-
mesh = SubResource("BoxMesh_floor")
|
|
167
|
-
surface_material_override/0 = SubResource("StandardMaterial3D_floor")
|
|
168
|
-
|
|
169
|
-
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
|
|
170
|
-
`;
|
|
171
|
-
}
|