summer-engine 2.8.2 → 3.1.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 +149 -44
- package/CLAUDE.md +4 -2
- package/GEMINI.md +7 -53
- package/NOTICE +31 -0
- package/README.md +161 -393
- 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/cli/commands/setup.js +158 -0
- package/dist/{commands → cli/commands}/skills.js +121 -251
- 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 +55 -0
- package/dist/core/skills-registry.js +106 -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/installer/agent-config.d.ts +63 -0
- package/dist/installer/agent-config.js +540 -0
- package/dist/installer/agent-table.d.ts +103 -0
- package/dist/installer/agent-table.js +584 -0
- 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 +148 -0
- package/dist/installer/skill-locations.d.ts +36 -0
- package/dist/installer/skill-locations.js +91 -0
- package/dist/installer/version-check.d.ts +178 -0
- package/dist/installer/version-check.js +479 -0
- 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 +99 -0
- package/integrations/amp/README.md +12 -0
- package/integrations/amp/manifest-target.json +3 -0
- package/integrations/antigravity/README.md +12 -0
- package/integrations/antigravity/manifest-target.json +3 -0
- package/integrations/claude/README.md +19 -0
- package/integrations/claude/manifest-target.json +16 -0
- package/integrations/claude-desktop/README.md +12 -0
- package/integrations/claude-desktop/manifest-target.json +3 -0
- package/integrations/cline/README.md +12 -0
- package/integrations/cline/manifest-target.json +3 -0
- package/integrations/cline-cli/README.md +12 -0
- package/integrations/cline-cli/manifest-target.json +3 -0
- package/integrations/codex/README.md +15 -0
- package/integrations/codex/manifest-target.json +5 -0
- package/integrations/copilot-jetbrains/README.md +12 -0
- package/integrations/copilot-jetbrains/manifest-target.json +3 -0
- package/integrations/crush/README.md +12 -0
- package/integrations/crush/manifest-target.json +3 -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/goose/README.md +12 -0
- package/integrations/goose/manifest-target.json +3 -0
- package/integrations/grok-build/README.md +12 -0
- package/integrations/grok-build/manifest-target.json +3 -0
- package/integrations/hermes/README.md +12 -0
- package/integrations/hermes/manifest-target.json +3 -0
- package/integrations/junie/README.md +12 -0
- package/integrations/junie/manifest-target.json +3 -0
- package/integrations/kilo-code/README.md +12 -0
- package/integrations/kilo-code/manifest-target.json +3 -0
- package/integrations/kimi-code/README.md +12 -0
- package/integrations/kimi-code/manifest-target.json +3 -0
- package/integrations/kiro/README.md +12 -0
- package/integrations/kiro/manifest-target.json +3 -0
- package/integrations/lm-studio/README.md +12 -0
- package/integrations/lm-studio/manifest-target.json +3 -0
- package/integrations/mistral-vibe/README.md +12 -0
- package/integrations/mistral-vibe/manifest-target.json +3 -0
- package/integrations/opencode/README.md +12 -0
- package/integrations/opencode/manifest-target.json +3 -0
- package/integrations/qoder/README.md +12 -0
- package/integrations/qoder/manifest-target.json +3 -0
- package/integrations/qwen-code/README.md +12 -0
- package/integrations/qwen-code/manifest-target.json +3 -0
- package/integrations/roo-code/README.md +14 -0
- package/integrations/roo-code/manifest-target.json +3 -0
- package/integrations/rovo-dev/README.md +12 -0
- package/integrations/rovo-dev/manifest-target.json +3 -0
- package/integrations/trae/README.md +12 -0
- package/integrations/trae/manifest-target.json +3 -0
- package/integrations/visual-studio/README.md +12 -0
- package/integrations/visual-studio/manifest-target.json +3 -0
- package/integrations/vscode-copilot/README.md +12 -0
- package/integrations/vscode-copilot/manifest-target.json +3 -0
- package/integrations/warp/README.md +12 -0
- package/integrations/warp/manifest-target.json +3 -0
- package/integrations/windsurf/README.md +12 -0
- package/integrations/windsurf/manifest-target.json +3 -0
- package/integrations/zed/README.md +12 -0
- package/integrations/zed/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/library/skills/README.md +242 -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 +21 -15
- 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-index.md +242 -0
- package/registry/generated/skills-registry.json +1249 -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/setup.js +0 -217
- package/dist/commands/status.js +0 -46
- package/dist/lib/agent-config.d.ts +0 -39
- package/dist/lib/agent-config.js +0 -626
- 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/lib/version-check.js +0 -338
- 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
|
@@ -1,148 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env bash
|
|
2
|
-
# Start the brainstorm server and output connection info
|
|
3
|
-
# Usage: start-server.sh [--project-dir <path>] [--host <bind-host>] [--url-host <display-host>] [--foreground] [--background]
|
|
4
|
-
#
|
|
5
|
-
# Starts server on a random high port, outputs JSON with URL.
|
|
6
|
-
# Each session gets its own directory to avoid conflicts.
|
|
7
|
-
#
|
|
8
|
-
# Options:
|
|
9
|
-
# --project-dir <path> Store session files under <path>/.superpowers/brainstorm/
|
|
10
|
-
# instead of /tmp. Files persist after server stops.
|
|
11
|
-
# --host <bind-host> Host/interface to bind (default: 127.0.0.1).
|
|
12
|
-
# Use 0.0.0.0 in remote/containerized environments.
|
|
13
|
-
# --url-host <host> Hostname shown in returned URL JSON.
|
|
14
|
-
# --foreground Run server in the current terminal (no backgrounding).
|
|
15
|
-
# --background Force background mode (overrides Codex auto-foreground).
|
|
16
|
-
|
|
17
|
-
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
18
|
-
|
|
19
|
-
# Parse arguments
|
|
20
|
-
PROJECT_DIR=""
|
|
21
|
-
FOREGROUND="false"
|
|
22
|
-
FORCE_BACKGROUND="false"
|
|
23
|
-
BIND_HOST="127.0.0.1"
|
|
24
|
-
URL_HOST=""
|
|
25
|
-
while [[ $# -gt 0 ]]; do
|
|
26
|
-
case "$1" in
|
|
27
|
-
--project-dir)
|
|
28
|
-
PROJECT_DIR="$2"
|
|
29
|
-
shift 2
|
|
30
|
-
;;
|
|
31
|
-
--host)
|
|
32
|
-
BIND_HOST="$2"
|
|
33
|
-
shift 2
|
|
34
|
-
;;
|
|
35
|
-
--url-host)
|
|
36
|
-
URL_HOST="$2"
|
|
37
|
-
shift 2
|
|
38
|
-
;;
|
|
39
|
-
--foreground|--no-daemon)
|
|
40
|
-
FOREGROUND="true"
|
|
41
|
-
shift
|
|
42
|
-
;;
|
|
43
|
-
--background|--daemon)
|
|
44
|
-
FORCE_BACKGROUND="true"
|
|
45
|
-
shift
|
|
46
|
-
;;
|
|
47
|
-
*)
|
|
48
|
-
echo "{\"error\": \"Unknown argument: $1\"}"
|
|
49
|
-
exit 1
|
|
50
|
-
;;
|
|
51
|
-
esac
|
|
52
|
-
done
|
|
53
|
-
|
|
54
|
-
if [[ -z "$URL_HOST" ]]; then
|
|
55
|
-
if [[ "$BIND_HOST" == "127.0.0.1" || "$BIND_HOST" == "localhost" ]]; then
|
|
56
|
-
URL_HOST="localhost"
|
|
57
|
-
else
|
|
58
|
-
URL_HOST="$BIND_HOST"
|
|
59
|
-
fi
|
|
60
|
-
fi
|
|
61
|
-
|
|
62
|
-
# Some environments reap detached/background processes. Auto-foreground when detected.
|
|
63
|
-
if [[ -n "${CODEX_CI:-}" && "$FOREGROUND" != "true" && "$FORCE_BACKGROUND" != "true" ]]; then
|
|
64
|
-
FOREGROUND="true"
|
|
65
|
-
fi
|
|
66
|
-
|
|
67
|
-
# Windows/Git Bash reaps nohup background processes. Auto-foreground when detected.
|
|
68
|
-
if [[ "$FOREGROUND" != "true" && "$FORCE_BACKGROUND" != "true" ]]; then
|
|
69
|
-
case "${OSTYPE:-}" in
|
|
70
|
-
msys*|cygwin*|mingw*) FOREGROUND="true" ;;
|
|
71
|
-
esac
|
|
72
|
-
if [[ -n "${MSYSTEM:-}" ]]; then
|
|
73
|
-
FOREGROUND="true"
|
|
74
|
-
fi
|
|
75
|
-
fi
|
|
76
|
-
|
|
77
|
-
# Generate unique session directory
|
|
78
|
-
SESSION_ID="$$-$(date +%s)"
|
|
79
|
-
|
|
80
|
-
if [[ -n "$PROJECT_DIR" ]]; then
|
|
81
|
-
SESSION_DIR="${PROJECT_DIR}/.superpowers/brainstorm/${SESSION_ID}"
|
|
82
|
-
else
|
|
83
|
-
SESSION_DIR="/tmp/brainstorm-${SESSION_ID}"
|
|
84
|
-
fi
|
|
85
|
-
|
|
86
|
-
STATE_DIR="${SESSION_DIR}/state"
|
|
87
|
-
PID_FILE="${STATE_DIR}/server.pid"
|
|
88
|
-
LOG_FILE="${STATE_DIR}/server.log"
|
|
89
|
-
|
|
90
|
-
# Create fresh session directory with content and state peers
|
|
91
|
-
mkdir -p "${SESSION_DIR}/content" "$STATE_DIR"
|
|
92
|
-
|
|
93
|
-
# Kill any existing server
|
|
94
|
-
if [[ -f "$PID_FILE" ]]; then
|
|
95
|
-
old_pid=$(cat "$PID_FILE")
|
|
96
|
-
kill "$old_pid" 2>/dev/null
|
|
97
|
-
rm -f "$PID_FILE"
|
|
98
|
-
fi
|
|
99
|
-
|
|
100
|
-
cd "$SCRIPT_DIR"
|
|
101
|
-
|
|
102
|
-
# Resolve the harness PID (grandparent of this script).
|
|
103
|
-
# $PPID is the ephemeral shell the harness spawned to run us — it dies
|
|
104
|
-
# when this script exits. The harness itself is $PPID's parent.
|
|
105
|
-
OWNER_PID="$(ps -o ppid= -p "$PPID" 2>/dev/null | tr -d ' ')"
|
|
106
|
-
if [[ -z "$OWNER_PID" || "$OWNER_PID" == "1" ]]; then
|
|
107
|
-
OWNER_PID="$PPID"
|
|
108
|
-
fi
|
|
109
|
-
|
|
110
|
-
# Foreground mode for environments that reap detached/background processes.
|
|
111
|
-
if [[ "$FOREGROUND" == "true" ]]; then
|
|
112
|
-
echo "$$" > "$PID_FILE"
|
|
113
|
-
env BRAINSTORM_DIR="$SESSION_DIR" BRAINSTORM_HOST="$BIND_HOST" BRAINSTORM_URL_HOST="$URL_HOST" BRAINSTORM_OWNER_PID="$OWNER_PID" node server.cjs
|
|
114
|
-
exit $?
|
|
115
|
-
fi
|
|
116
|
-
|
|
117
|
-
# Start server, capturing output to log file
|
|
118
|
-
# Use nohup to survive shell exit; disown to remove from job table
|
|
119
|
-
nohup env BRAINSTORM_DIR="$SESSION_DIR" BRAINSTORM_HOST="$BIND_HOST" BRAINSTORM_URL_HOST="$URL_HOST" BRAINSTORM_OWNER_PID="$OWNER_PID" node server.cjs > "$LOG_FILE" 2>&1 &
|
|
120
|
-
SERVER_PID=$!
|
|
121
|
-
disown "$SERVER_PID" 2>/dev/null
|
|
122
|
-
echo "$SERVER_PID" > "$PID_FILE"
|
|
123
|
-
|
|
124
|
-
# Wait for server-started message (check log file)
|
|
125
|
-
for i in {1..50}; do
|
|
126
|
-
if grep -q "server-started" "$LOG_FILE" 2>/dev/null; then
|
|
127
|
-
# Verify server is still alive after a short window (catches process reapers)
|
|
128
|
-
alive="true"
|
|
129
|
-
for _ in {1..20}; do
|
|
130
|
-
if ! kill -0 "$SERVER_PID" 2>/dev/null; then
|
|
131
|
-
alive="false"
|
|
132
|
-
break
|
|
133
|
-
fi
|
|
134
|
-
sleep 0.1
|
|
135
|
-
done
|
|
136
|
-
if [[ "$alive" != "true" ]]; then
|
|
137
|
-
echo "{\"error\": \"Server started but was killed. Retry in a persistent terminal with: $SCRIPT_DIR/start-server.sh${PROJECT_DIR:+ --project-dir $PROJECT_DIR} --host $BIND_HOST --url-host $URL_HOST --foreground\"}"
|
|
138
|
-
exit 1
|
|
139
|
-
fi
|
|
140
|
-
grep "server-started" "$LOG_FILE" | head -1
|
|
141
|
-
exit 0
|
|
142
|
-
fi
|
|
143
|
-
sleep 0.1
|
|
144
|
-
done
|
|
145
|
-
|
|
146
|
-
# Timeout - server didn't start
|
|
147
|
-
echo '{"error": "Server failed to start within 5 seconds"}'
|
|
148
|
-
exit 1
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env bash
|
|
2
|
-
# Stop the brainstorm server and clean up
|
|
3
|
-
# Usage: stop-server.sh <session_dir>
|
|
4
|
-
#
|
|
5
|
-
# Kills the server process. Only deletes session directory if it's
|
|
6
|
-
# under /tmp (ephemeral). Persistent directories (.superpowers/) are
|
|
7
|
-
# kept so mockups can be reviewed later.
|
|
8
|
-
|
|
9
|
-
SESSION_DIR="$1"
|
|
10
|
-
|
|
11
|
-
if [[ -z "$SESSION_DIR" ]]; then
|
|
12
|
-
echo '{"error": "Usage: stop-server.sh <session_dir>"}'
|
|
13
|
-
exit 1
|
|
14
|
-
fi
|
|
15
|
-
|
|
16
|
-
STATE_DIR="${SESSION_DIR}/state"
|
|
17
|
-
PID_FILE="${STATE_DIR}/server.pid"
|
|
18
|
-
|
|
19
|
-
if [[ -f "$PID_FILE" ]]; then
|
|
20
|
-
pid=$(cat "$PID_FILE")
|
|
21
|
-
|
|
22
|
-
# Try to stop gracefully, fallback to force if still alive
|
|
23
|
-
kill "$pid" 2>/dev/null || true
|
|
24
|
-
|
|
25
|
-
# Wait for graceful shutdown (up to ~2s)
|
|
26
|
-
for i in {1..20}; do
|
|
27
|
-
if ! kill -0 "$pid" 2>/dev/null; then
|
|
28
|
-
break
|
|
29
|
-
fi
|
|
30
|
-
sleep 0.1
|
|
31
|
-
done
|
|
32
|
-
|
|
33
|
-
# If still running, escalate to SIGKILL
|
|
34
|
-
if kill -0 "$pid" 2>/dev/null; then
|
|
35
|
-
kill -9 "$pid" 2>/dev/null || true
|
|
36
|
-
|
|
37
|
-
# Give SIGKILL a moment to take effect
|
|
38
|
-
sleep 0.1
|
|
39
|
-
fi
|
|
40
|
-
|
|
41
|
-
if kill -0 "$pid" 2>/dev/null; then
|
|
42
|
-
echo '{"status": "failed", "error": "process still running"}'
|
|
43
|
-
exit 1
|
|
44
|
-
fi
|
|
45
|
-
|
|
46
|
-
rm -f "$PID_FILE" "${STATE_DIR}/server.log"
|
|
47
|
-
|
|
48
|
-
# Only delete ephemeral /tmp directories
|
|
49
|
-
if [[ "$SESSION_DIR" == /tmp/* ]]; then
|
|
50
|
-
rm -rf "$SESSION_DIR"
|
|
51
|
-
fi
|
|
52
|
-
|
|
53
|
-
echo '{"status": "stopped"}'
|
|
54
|
-
else
|
|
55
|
-
echo '{"status": "not_running"}'
|
|
56
|
-
fi
|
|
@@ -1,287 +0,0 @@
|
|
|
1
|
-
# Visual Companion Guide
|
|
2
|
-
|
|
3
|
-
Browser-based visual brainstorming companion for showing mockups, diagrams, and options.
|
|
4
|
-
|
|
5
|
-
## When to Use
|
|
6
|
-
|
|
7
|
-
Decide per-question, not per-session. The test: **would the user understand this better by seeing it than reading it?**
|
|
8
|
-
|
|
9
|
-
**Use the browser** when the content itself is visual:
|
|
10
|
-
|
|
11
|
-
- **UI mockups** — wireframes, layouts, navigation structures, component designs
|
|
12
|
-
- **Architecture diagrams** — system components, data flow, relationship maps
|
|
13
|
-
- **Side-by-side visual comparisons** — comparing two layouts, two color schemes, two design directions
|
|
14
|
-
- **Design polish** — when the question is about look and feel, spacing, visual hierarchy
|
|
15
|
-
- **Spatial relationships** — state machines, flowcharts, entity relationships rendered as diagrams
|
|
16
|
-
|
|
17
|
-
**Use the terminal** when the content is text or tabular:
|
|
18
|
-
|
|
19
|
-
- **Requirements and scope questions** — "what does X mean?", "which features are in scope?"
|
|
20
|
-
- **Conceptual A/B/C choices** — picking between approaches described in words
|
|
21
|
-
- **Tradeoff lists** — pros/cons, comparison tables
|
|
22
|
-
- **Technical decisions** — API design, data modeling, architectural approach selection
|
|
23
|
-
- **Clarifying questions** — anything where the answer is words, not a visual preference
|
|
24
|
-
|
|
25
|
-
A question *about* a UI topic is not automatically a visual question. "What kind of wizard do you want?" is conceptual — use the terminal. "Which of these wizard layouts feels right?" is visual — use the browser.
|
|
26
|
-
|
|
27
|
-
## How It Works
|
|
28
|
-
|
|
29
|
-
The server watches a directory for HTML files and serves the newest one to the browser. You write HTML content to `screen_dir`, the user sees it in their browser and can click to select options. Selections are recorded to `state_dir/events` that you read on your next turn.
|
|
30
|
-
|
|
31
|
-
**Content fragments vs full documents:** If your HTML file starts with `<!DOCTYPE` or `<html`, the server serves it as-is (just injects the helper script). Otherwise, the server automatically wraps your content in the frame template — adding the header, CSS theme, selection indicator, and all interactive infrastructure. **Write content fragments by default.** Only write full documents when you need complete control over the page.
|
|
32
|
-
|
|
33
|
-
## Starting a Session
|
|
34
|
-
|
|
35
|
-
```bash
|
|
36
|
-
# Start server with persistence (mockups saved to project)
|
|
37
|
-
scripts/start-server.sh --project-dir /path/to/project
|
|
38
|
-
|
|
39
|
-
# Returns: {"type":"server-started","port":52341,"url":"http://localhost:52341",
|
|
40
|
-
# "screen_dir":"/path/to/project/.superpowers/brainstorm/12345-1706000000/content",
|
|
41
|
-
# "state_dir":"/path/to/project/.superpowers/brainstorm/12345-1706000000/state"}
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
Save `screen_dir` and `state_dir` from the response. Tell user to open the URL.
|
|
45
|
-
|
|
46
|
-
**Finding connection info:** The server writes its startup JSON to `$STATE_DIR/server-info`. If you launched the server in the background and didn't capture stdout, read that file to get the URL and port. When using `--project-dir`, check `<project>/.superpowers/brainstorm/` for the session directory.
|
|
47
|
-
|
|
48
|
-
**Note:** Pass the project root as `--project-dir` so mockups persist in `.superpowers/brainstorm/` and survive server restarts. Without it, files go to `/tmp` and get cleaned up. Remind the user to add `.superpowers/` to `.gitignore` if it's not already there.
|
|
49
|
-
|
|
50
|
-
**Launching the server by platform:**
|
|
51
|
-
|
|
52
|
-
**Claude Code (macOS / Linux):**
|
|
53
|
-
```bash
|
|
54
|
-
# Default mode works — the script backgrounds the server itself
|
|
55
|
-
scripts/start-server.sh --project-dir /path/to/project
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
**Claude Code (Windows):**
|
|
59
|
-
```bash
|
|
60
|
-
# Windows auto-detects and uses foreground mode, which blocks the tool call.
|
|
61
|
-
# Use run_in_background: true on the Bash tool call so the server survives
|
|
62
|
-
# across conversation turns.
|
|
63
|
-
scripts/start-server.sh --project-dir /path/to/project
|
|
64
|
-
```
|
|
65
|
-
When calling this via the Bash tool, set `run_in_background: true`. Then read `$STATE_DIR/server-info` on the next turn to get the URL and port.
|
|
66
|
-
|
|
67
|
-
**Codex:**
|
|
68
|
-
```bash
|
|
69
|
-
# Codex reaps background processes. The script auto-detects CODEX_CI and
|
|
70
|
-
# switches to foreground mode. Run it normally — no extra flags needed.
|
|
71
|
-
scripts/start-server.sh --project-dir /path/to/project
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
**Gemini CLI:**
|
|
75
|
-
```bash
|
|
76
|
-
# Use --foreground and set is_background: true on your shell tool call
|
|
77
|
-
# so the process survives across turns
|
|
78
|
-
scripts/start-server.sh --project-dir /path/to/project --foreground
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
**Other environments:** The server must keep running in the background across conversation turns. If your environment reaps detached processes, use `--foreground` and launch the command with your platform's background execution mechanism.
|
|
82
|
-
|
|
83
|
-
If the URL is unreachable from your browser (common in remote/containerized setups), bind a non-loopback host:
|
|
84
|
-
|
|
85
|
-
```bash
|
|
86
|
-
scripts/start-server.sh \
|
|
87
|
-
--project-dir /path/to/project \
|
|
88
|
-
--host 0.0.0.0 \
|
|
89
|
-
--url-host localhost
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
Use `--url-host` to control what hostname is printed in the returned URL JSON.
|
|
93
|
-
|
|
94
|
-
## The Loop
|
|
95
|
-
|
|
96
|
-
1. **Check server is alive**, then **write HTML** to a new file in `screen_dir`:
|
|
97
|
-
- Before each write, check that `$STATE_DIR/server-info` exists. If it doesn't (or `$STATE_DIR/server-stopped` exists), the server has shut down — restart it with `start-server.sh` before continuing. The server auto-exits after 30 minutes of inactivity.
|
|
98
|
-
- Use semantic filenames: `platform.html`, `visual-style.html`, `layout.html`
|
|
99
|
-
- **Never reuse filenames** — each screen gets a fresh file
|
|
100
|
-
- Use Write tool — **never use cat/heredoc** (dumps noise into terminal)
|
|
101
|
-
- Server automatically serves the newest file
|
|
102
|
-
|
|
103
|
-
2. **Tell user what to expect and end your turn:**
|
|
104
|
-
- Remind them of the URL (every step, not just first)
|
|
105
|
-
- Give a brief text summary of what's on screen (e.g., "Showing 3 layout options for the homepage")
|
|
106
|
-
- Ask them to respond in the terminal: "Take a look and let me know what you think. Click to select an option if you'd like."
|
|
107
|
-
|
|
108
|
-
3. **On your next turn** — after the user responds in the terminal:
|
|
109
|
-
- Read `$STATE_DIR/events` if it exists — this contains the user's browser interactions (clicks, selections) as JSON lines
|
|
110
|
-
- Merge with the user's terminal text to get the full picture
|
|
111
|
-
- The terminal message is the primary feedback; `state_dir/events` provides structured interaction data
|
|
112
|
-
|
|
113
|
-
4. **Iterate or advance** — if feedback changes current screen, write a new file (e.g., `layout-v2.html`). Only move to the next question when the current step is validated.
|
|
114
|
-
|
|
115
|
-
5. **Unload when returning to terminal** — when the next step doesn't need the browser (e.g., a clarifying question, a tradeoff discussion), push a waiting screen to clear the stale content:
|
|
116
|
-
|
|
117
|
-
```html
|
|
118
|
-
<!-- filename: waiting.html (or waiting-2.html, etc.) -->
|
|
119
|
-
<div style="display:flex;align-items:center;justify-content:center;min-height:60vh">
|
|
120
|
-
<p class="subtitle">Continuing in terminal...</p>
|
|
121
|
-
</div>
|
|
122
|
-
```
|
|
123
|
-
|
|
124
|
-
This prevents the user from staring at a resolved choice while the conversation has moved on. When the next visual question comes up, push a new content file as usual.
|
|
125
|
-
|
|
126
|
-
6. Repeat until done.
|
|
127
|
-
|
|
128
|
-
## Writing Content Fragments
|
|
129
|
-
|
|
130
|
-
Write just the content that goes inside the page. The server wraps it in the frame template automatically (header, theme CSS, selection indicator, and all interactive infrastructure).
|
|
131
|
-
|
|
132
|
-
**Minimal example:**
|
|
133
|
-
|
|
134
|
-
```html
|
|
135
|
-
<h2>Which layout works better?</h2>
|
|
136
|
-
<p class="subtitle">Consider readability and visual hierarchy</p>
|
|
137
|
-
|
|
138
|
-
<div class="options">
|
|
139
|
-
<div class="option" data-choice="a" onclick="toggleSelect(this)">
|
|
140
|
-
<div class="letter">A</div>
|
|
141
|
-
<div class="content">
|
|
142
|
-
<h3>Single Column</h3>
|
|
143
|
-
<p>Clean, focused reading experience</p>
|
|
144
|
-
</div>
|
|
145
|
-
</div>
|
|
146
|
-
<div class="option" data-choice="b" onclick="toggleSelect(this)">
|
|
147
|
-
<div class="letter">B</div>
|
|
148
|
-
<div class="content">
|
|
149
|
-
<h3>Two Column</h3>
|
|
150
|
-
<p>Sidebar navigation with main content</p>
|
|
151
|
-
</div>
|
|
152
|
-
</div>
|
|
153
|
-
</div>
|
|
154
|
-
```
|
|
155
|
-
|
|
156
|
-
That's it. No `<html>`, no CSS, no `<script>` tags needed. The server provides all of that.
|
|
157
|
-
|
|
158
|
-
## CSS Classes Available
|
|
159
|
-
|
|
160
|
-
The frame template provides these CSS classes for your content:
|
|
161
|
-
|
|
162
|
-
### Options (A/B/C choices)
|
|
163
|
-
|
|
164
|
-
```html
|
|
165
|
-
<div class="options">
|
|
166
|
-
<div class="option" data-choice="a" onclick="toggleSelect(this)">
|
|
167
|
-
<div class="letter">A</div>
|
|
168
|
-
<div class="content">
|
|
169
|
-
<h3>Title</h3>
|
|
170
|
-
<p>Description</p>
|
|
171
|
-
</div>
|
|
172
|
-
</div>
|
|
173
|
-
</div>
|
|
174
|
-
```
|
|
175
|
-
|
|
176
|
-
**Multi-select:** Add `data-multiselect` to the container to let users select multiple options. Each click toggles the item. The indicator bar shows the count.
|
|
177
|
-
|
|
178
|
-
```html
|
|
179
|
-
<div class="options" data-multiselect>
|
|
180
|
-
<!-- same option markup — users can select/deselect multiple -->
|
|
181
|
-
</div>
|
|
182
|
-
```
|
|
183
|
-
|
|
184
|
-
### Cards (visual designs)
|
|
185
|
-
|
|
186
|
-
```html
|
|
187
|
-
<div class="cards">
|
|
188
|
-
<div class="card" data-choice="design1" onclick="toggleSelect(this)">
|
|
189
|
-
<div class="card-image"><!-- mockup content --></div>
|
|
190
|
-
<div class="card-body">
|
|
191
|
-
<h3>Name</h3>
|
|
192
|
-
<p>Description</p>
|
|
193
|
-
</div>
|
|
194
|
-
</div>
|
|
195
|
-
</div>
|
|
196
|
-
```
|
|
197
|
-
|
|
198
|
-
### Mockup container
|
|
199
|
-
|
|
200
|
-
```html
|
|
201
|
-
<div class="mockup">
|
|
202
|
-
<div class="mockup-header">Preview: Dashboard Layout</div>
|
|
203
|
-
<div class="mockup-body"><!-- your mockup HTML --></div>
|
|
204
|
-
</div>
|
|
205
|
-
```
|
|
206
|
-
|
|
207
|
-
### Split view (side-by-side)
|
|
208
|
-
|
|
209
|
-
```html
|
|
210
|
-
<div class="split">
|
|
211
|
-
<div class="mockup"><!-- left --></div>
|
|
212
|
-
<div class="mockup"><!-- right --></div>
|
|
213
|
-
</div>
|
|
214
|
-
```
|
|
215
|
-
|
|
216
|
-
### Pros/Cons
|
|
217
|
-
|
|
218
|
-
```html
|
|
219
|
-
<div class="pros-cons">
|
|
220
|
-
<div class="pros"><h4>Pros</h4><ul><li>Benefit</li></ul></div>
|
|
221
|
-
<div class="cons"><h4>Cons</h4><ul><li>Drawback</li></ul></div>
|
|
222
|
-
</div>
|
|
223
|
-
```
|
|
224
|
-
|
|
225
|
-
### Mock elements (wireframe building blocks)
|
|
226
|
-
|
|
227
|
-
```html
|
|
228
|
-
<div class="mock-nav">Logo | Home | About | Contact</div>
|
|
229
|
-
<div style="display: flex;">
|
|
230
|
-
<div class="mock-sidebar">Navigation</div>
|
|
231
|
-
<div class="mock-content">Main content area</div>
|
|
232
|
-
</div>
|
|
233
|
-
<button class="mock-button">Action Button</button>
|
|
234
|
-
<input class="mock-input" placeholder="Input field">
|
|
235
|
-
<div class="placeholder">Placeholder area</div>
|
|
236
|
-
```
|
|
237
|
-
|
|
238
|
-
### Typography and sections
|
|
239
|
-
|
|
240
|
-
- `h2` — page title
|
|
241
|
-
- `h3` — section heading
|
|
242
|
-
- `.subtitle` — secondary text below title
|
|
243
|
-
- `.section` — content block with bottom margin
|
|
244
|
-
- `.label` — small uppercase label text
|
|
245
|
-
|
|
246
|
-
## Browser Events Format
|
|
247
|
-
|
|
248
|
-
When the user clicks options in the browser, their interactions are recorded to `$STATE_DIR/events` (one JSON object per line). The file is cleared automatically when you push a new screen.
|
|
249
|
-
|
|
250
|
-
```jsonl
|
|
251
|
-
{"type":"click","choice":"a","text":"Option A - Simple Layout","timestamp":1706000101}
|
|
252
|
-
{"type":"click","choice":"c","text":"Option C - Complex Grid","timestamp":1706000108}
|
|
253
|
-
{"type":"click","choice":"b","text":"Option B - Hybrid","timestamp":1706000115}
|
|
254
|
-
```
|
|
255
|
-
|
|
256
|
-
The full event stream shows the user's exploration path — they may click multiple options before settling. The last `choice` event is typically the final selection, but the pattern of clicks can reveal hesitation or preferences worth asking about.
|
|
257
|
-
|
|
258
|
-
If `$STATE_DIR/events` doesn't exist, the user didn't interact with the browser — use only their terminal text.
|
|
259
|
-
|
|
260
|
-
## Design Tips
|
|
261
|
-
|
|
262
|
-
- **Scale fidelity to the question** — wireframes for layout, polish for polish questions
|
|
263
|
-
- **Explain the question on each page** — "Which layout feels more professional?" not just "Pick one"
|
|
264
|
-
- **Iterate before advancing** — if feedback changes current screen, write a new version
|
|
265
|
-
- **2-4 options max** per screen
|
|
266
|
-
- **Use real content when it matters** — for a photography portfolio, use actual images (Unsplash). Placeholder content obscures design issues.
|
|
267
|
-
- **Keep mockups simple** — focus on layout and structure, not pixel-perfect design
|
|
268
|
-
|
|
269
|
-
## File Naming
|
|
270
|
-
|
|
271
|
-
- Use semantic names: `platform.html`, `visual-style.html`, `layout.html`
|
|
272
|
-
- Never reuse filenames — each screen must be a new file
|
|
273
|
-
- For iterations: append version suffix like `layout-v2.html`, `layout-v3.html`
|
|
274
|
-
- Server serves newest file by modification time
|
|
275
|
-
|
|
276
|
-
## Cleaning Up
|
|
277
|
-
|
|
278
|
-
```bash
|
|
279
|
-
scripts/stop-server.sh $SESSION_DIR
|
|
280
|
-
```
|
|
281
|
-
|
|
282
|
-
If the session used `--project-dir`, mockup files persist in `.superpowers/brainstorm/` for later reference. Only `/tmp` sessions get deleted on stop.
|
|
283
|
-
|
|
284
|
-
## Reference
|
|
285
|
-
|
|
286
|
-
- Frame template (CSS reference): `scripts/frame-template.html`
|
|
287
|
-
- Helper script (client-side): `scripts/helper.js`
|
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: gameskill
|
|
3
|
-
description: Use when finishing a game-development session and you want to capture what you just learned into Summer's canonical skill library so the next session and every Summer user start smarter. Trigger on "gameskill", "/gameskill", "capture learnings", "save to skills".
|
|
4
|
-
license: MIT
|
|
5
|
-
compatibility: [Cursor, Claude Code, Windsurf, Codex]
|
|
6
|
-
category: workflow
|
|
7
|
-
allowed-tools: Read Write Edit Glob Grep Bash
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# /gameskill — Capture Session Learnings into the Skill Library
|
|
11
|
-
|
|
12
|
-
You're being invoked at the end (or middle) of a game-development session. Your job is to turn what you just figured out into a durable skill update so future agents and Summer users get to start where you ended.
|
|
13
|
-
|
|
14
|
-
This is the meta-skill: the loop that turns ad-hoc fixes into reusable expertise.
|
|
15
|
-
|
|
16
|
-
## What "Summer Engine" is, so you're grounded
|
|
17
|
-
|
|
18
|
-
Three repos, one ecosystem:
|
|
19
|
-
|
|
20
|
-
1. **SummerEngine repo** — the Summer Engine desktop source plus the canonical
|
|
21
|
-
CLI. The C++ engine is maintained against the upstream Godot Engine codebase;
|
|
22
|
-
the Summer-owned module lives at `modules/1summer_engine/`. CLI source lives
|
|
23
|
-
at `tools/summer-cli/` and is normally invoked with
|
|
24
|
-
`npx -y summer-engine@latest`. It installs, signs in, creates, and runs Summer
|
|
25
|
-
projects and can install the current Summer skill bundle for supported
|
|
26
|
-
agents.
|
|
27
|
-
2. **PublicSummerEngine repo** — the web app at summerengine.com. Has its own AI skill stores at `src/lib/ai/skills/bundled/` and `public/knowledge/summer/skills/` for the in-browser chat agent. Also has its own consumers of the engine API in `src/lib/bridge/direct-executor.ts` and `src/lib/ai/tools/run-and-verify.ts` which call the same engine endpoints the CLI does.
|
|
28
|
-
3. **The active Summer game project** — usually
|
|
29
|
-
`~/development/<game-name>` or whatever game you were just working on. The
|
|
30
|
-
live compatibility line comes from Summer Engine, not this prompt. Real
|
|
31
|
-
working code in this repo is the gold standard for examples.
|
|
32
|
-
|
|
33
|
-
The skill system is the value flywheel. Every game shipped teaches lessons. Lessons become skills. Next user starts smarter. Your job here is to close that loop for what you just did.
|
|
34
|
-
|
|
35
|
-
## Cross-repo change awareness — read before any non-trivial fix
|
|
36
|
-
|
|
37
|
-
When the lesson is "the engine should expose more / behave differently," the change usually crosses repo boundaries. Map the layers before you edit:
|
|
38
|
-
|
|
39
|
-
```
|
|
40
|
-
[active game] -> calls MCP / web app
|
|
41
|
-
v
|
|
42
|
-
[summer-cli MCP server (TypeScript)] -> calls /api/ops + /api/state/* on the engine
|
|
43
|
-
v
|
|
44
|
-
[Summer Engine binary (C++ in SummerEngine repo)] - source of truth for what the API returns
|
|
45
|
-
|
|
46
|
-
[PublicSummerEngine web app (TypeScript)] -> also calls the same engine endpoints via direct-executor or Redis bridge
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
Implications:
|
|
50
|
-
|
|
51
|
-
- A C++ change in `SummerEngine/modules/1summer_engine/` or `SummerEngine/editor/` reaches everyone (CLI MCP, web app, future tools). Most powerful, also highest blast radius.
|
|
52
|
-
- A TypeScript change in `tools/summer-cli/src/mcp/` only changes what the CLI exposes. The web app has its own TypeScript layer at `PublicSummerEngine/src/lib/bridge/`. Same engine endpoints, different glue. Don't assume your CLI tool change is web-app-aware.
|
|
53
|
-
- A skill update in `tools/summer-cli/skills/` affects every agent that runs `summer skills install`. The web app's skill store is separate (`PublicSummerEngine/src/lib/ai/skills/bundled/`) and currently uses a different format (template wizards, not Markdown discipline guides). Don't try to mirror skills there blindly.
|
|
54
|
-
|
|
55
|
-
When you change an engine endpoint's response shape:
|
|
56
|
-
|
|
57
|
-
1. Grep both `tools/summer-cli/src/` and `PublicSummerEngine/src/lib/` for consumers of that endpoint.
|
|
58
|
-
2. Confirm the change is additive (new fields, no removed/renamed) so existing consumers still work without modification.
|
|
59
|
-
3. If the change is breaking, update both consumers in the same logical commit set.
|
|
60
|
-
4. Note in `tools/summer-cli/TOOLING-TODO.md` what's now possible that wasn't before.
|
|
61
|
-
|
|
62
|
-
Engine binary changes ship via a rebuild + new release. CLI/web TypeScript changes ship via npm publish or web deploy. State this delivery cost in your report so the user knows what they get today vs after a release.
|
|
63
|
-
|
|
64
|
-
## The four skill stores (probe each before doing anything)
|
|
65
|
-
|
|
66
|
-
1. **Canonical source** — `~/development/SummerEngine/tools/summer-cli/skills/`. Single source of truth. Domains: `ui-and-ux`, `gameplay-mechanics`, `character-controllers`, `scripting-patterns`, `visual-effects`, `debugging`, `rendering-and-lighting`, `scene-and-project`, `level-design`, `audio`, `ai-and-npcs`, `asset-pipeline`, `performance`, `deployment`, `multiplayer-and-networking`, plus `workflow` for process skills. The `skills:` array in `.claude-plugin/plugin.json` is the registry. Sibling references live at top-level `references/` and `tests/`.
|
|
67
|
-
2. **Claude auto-discovery** — `~/.claude/skills/`. Where `summer skills install --agent claude-code` writes copies. Auto-discovered by Claude Code in any session.
|
|
68
|
-
3. **Web-app stores** — `PublicSummerEngine/src/lib/ai/skills/bundled/` (template wizards, different format) and `PublicSummerEngine/public/knowledge/summer/skills/` (JSON knowledge files). Mirror only when the lesson genuinely fits their format. Most discipline-guide skills don't.
|
|
69
|
-
4. **The active game** — read it as ground truth. Working code from the real project beats invented examples.
|
|
70
|
-
|
|
71
|
-
## What to do, in order
|
|
72
|
-
|
|
73
|
-
1. One short sentence to the user. "Capturing learnings from this session into the skill library." That's it. No plan dump.
|
|
74
|
-
|
|
75
|
-
2. Probe the stores. Glob each path above. Note what exists and what's empty. Print a tight summary.
|
|
76
|
-
|
|
77
|
-
3. Recap the session. Look back over the conversation. Pull out learnings that are non-obvious AND general — things a future agent or user would benefit from but couldn't derive from reading the codebase. Examples that count:
|
|
78
|
-
- A working shader (the actual code) -> `visual-effects`
|
|
79
|
-
- A GDScript idiom that beat the obvious approach -> `scripting-patterns`
|
|
80
|
-
- A UI layout that survived the design pass -> `ui-and-ux`
|
|
81
|
-
- A bug + root cause + fix that wasn't in any docs -> `debugging`
|
|
82
|
-
- A Godot 4.x quirk (type inference, signal gotchas, plugin layer config) -> `scripting-patterns`
|
|
83
|
-
- A spawning/AI/enemy pattern that worked -> `ai-and-npcs` or `gameplay-mechanics`
|
|
84
|
-
- A perf fix with measured before/after -> `performance`
|
|
85
|
-
- An asset workflow that beat alternatives -> `asset-pipeline`
|
|
86
|
-
- An MCP gap that needed an engine-side fix -> `tools/summer-cli/TOOLING-TODO.md` AND the relevant skill
|
|
87
|
-
|
|
88
|
-
Examples that DON'T count: one-off code with no general lesson, things already documented in CLAUDE.md or an existing skill, personal preferences without reasoning, anything you have to manufacture to fill space.
|
|
89
|
-
|
|
90
|
-
4. Decide placement. For each learning:
|
|
91
|
-
- Update existing skill: name the file, quote the section, draft the addition.
|
|
92
|
-
- Create new skill: pick the domain, name the file, draft the full skill markdown.
|
|
93
|
-
Match the format of existing skills in the same domain exactly. Read one if you're unsure.
|
|
94
|
-
|
|
95
|
-
5. One tight pause for the user. Five-to-ten lines max: what files you'll touch, what each one captures, what gets left out. Wait for OK or redirect. Don't ask multiple questions.
|
|
96
|
-
|
|
97
|
-
6. Apply.
|
|
98
|
-
- Write/edit `.md` files under `tools/summer-cli/skills/<domain>/`.
|
|
99
|
-
- Register a new skill in `.claude-plugin/plugin.json` (and sibling `.codex-plugin/`, `.cursor-plugin/` manifests) AND in `src/lib/skills-registry.ts` `SKILL_REGISTRY` array. Both are required — `plugin-manifests.test.ts` fails the build if either is missing.
|
|
100
|
-
- If the skill belongs in the curated Claude set, also write it to `~/.claude/skills/<name>/` so it's live in the current session. Tell the user to consider adding it to the CLI's default install set.
|
|
101
|
-
- If the learning applies to the web chat agent, mirror to `PublicSummerEngine` skill stores too.
|
|
102
|
-
- Run `git status` in the SummerEngine repo (and `PublicSummerEngine` if touched) so the diff is visible.
|
|
103
|
-
|
|
104
|
-
7. Report. One short message. Files changed, the future-agent payoff in one sentence per skill, and what (if anything) is still uncaptured.
|
|
105
|
-
|
|
106
|
-
## Style rules
|
|
107
|
-
|
|
108
|
-
- Tight. No slop. No glazing.
|
|
109
|
-
- Capture the why, not just the what. "Use X" rots. "Use X because Y breaks under Z" survives. Always lead skill updates with the reason.
|
|
110
|
-
- Real working code from the active project beats invented examples. Lift from the active codebase.
|
|
111
|
-
- VFX is code. Shaders + GDScript + node setup. Never image-generation pipelines or Meshy prompts.
|
|
112
|
-
- No em dashes (—) in any user-facing copy you write into skills. Use periods or restructure.
|
|
113
|
-
- No date references inside skill bodies. Skills are timeless guidance. Dates belong in commit messages and changelogs, not in `.md` skill content.
|
|
114
|
-
- No specific game / project names inside skill bodies. Skills are universal. The same skill might be installed by a future user who never heard of your current project.
|
|
115
|
-
- `[SUMMER]` markers on core Godot engine file edits in C++ changes. Skill `.md` files don't need them.
|
|
116
|
-
- Verify before claiming. If a skill says "Summer Engine does X," verify in the actual code before writing it down.
|
|
117
|
-
|
|
118
|
-
## When there's nothing worth capturing
|
|
119
|
-
|
|
120
|
-
It's totally fine to come back with "session was tactical, no durable learnings worth a skill update." Don't manufacture skills from thin air. Better to ship nothing than ship noise.
|