summer-engine 2.3.0 → 2.5.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 +1 -1
- package/.claude-plugin/plugin.json +20 -5
- package/.codex-plugin/plugin.json +15 -5
- package/.cursor-plugin/plugin.json +15 -5
- package/.factory-plugin/plugin.json +2 -2
- package/.opencode/INSTALL.md +1 -1
- package/CHANGELOG.md +27 -6
- package/CLAUDE.md +2 -2
- package/GEMINI.md +2 -3
- package/README.md +51 -30
- package/_persona/summer/SKILL.md +5 -6
- package/commands/gameskill.md +103 -0
- package/dist/bin/summer.js +12 -4
- package/dist/commands/create.js +2 -0
- package/dist/commands/doctor.js +71 -1
- package/dist/commands/install.d.ts +17 -0
- package/dist/commands/install.js +63 -4
- package/dist/commands/memory.d.ts +14 -0
- package/dist/commands/memory.js +196 -0
- package/dist/commands/setup.js +8 -2
- package/dist/commands/skills.js +90 -6
- package/dist/commands/status.js +3 -0
- package/dist/lib/agent-config.d.ts +2 -2
- package/dist/lib/agent-config.js +134 -7
- package/dist/lib/api-client.d.ts +13 -0
- package/dist/lib/api-client.js +63 -26
- package/dist/lib/async-op-lifecycle.d.ts +60 -0
- package/dist/lib/async-op-lifecycle.js +83 -0
- package/dist/lib/project-memory.d.ts +33 -0
- package/dist/lib/project-memory.js +220 -0
- package/dist/lib/skills-registry.d.ts +134 -61
- package/dist/lib/skills-registry.js +102 -4
- package/dist/lib/version-check.d.ts +106 -0
- package/dist/lib/version-check.js +338 -0
- package/dist/mcp/server.d.ts +2 -0
- package/dist/mcp/server.js +81 -0
- package/dist/mcp/tools/debug-tools.js +32 -2
- package/dist/mcp/tools/project-tools.js +18 -6
- package/dist/mcp/tools/with-engine.d.ts +14 -0
- package/dist/mcp/tools/with-engine.js +52 -7
- package/gemini-extension.json +2 -2
- package/hooks/pre-commit-doctor.sh +0 -0
- package/hooks/run-hook.cmd +0 -0
- package/hooks/session-start.sh +0 -0
- package/package.json +6 -4
- package/skills/2d-assets/character-portrait/SKILL.md +1 -1
- package/skills/2d-assets/concept-art/SKILL.md +1 -1
- package/skills/2d-assets/create-asset-sheet/SKILL.md +163 -0
- package/skills/2d-assets/instantiate-asset-pack/SKILL.md +245 -0
- package/skills/2d-assets/pixel-art/SKILL.md +1 -1
- package/skills/2d-assets/skybox-panorama/SKILL.md +1 -1
- package/skills/2d-assets/sprite-sheet/SKILL.md +1 -1
- package/skills/2d-assets/tileable-texture/SKILL.md +1 -1
- package/skills/2d-assets/ui-graphics/SKILL.md +1 -1
- package/skills/2d-assets/use-widget-asset/SKILL.md +217 -0
- package/skills/3d-assets/character-model/SKILL.md +1 -1
- package/skills/3d-assets/organic-model/SKILL.md +1 -1
- package/skills/3d-assets/prop-model/SKILL.md +1 -1
- package/skills/3d-assets/vehicle-model/SKILL.md +1 -1
- package/skills/README.md +37 -30
- package/skills/ai-and-npcs/design-npc/SKILL.md +6 -6
- package/skills/animation/animation-tree/SKILL.md +2 -2
- package/skills/animation/facial-and-lipsync/SKILL.md +1 -1
- package/skills/animation/generate-motion/SKILL.md +1 -1
- package/skills/animation/procedural-animation/SKILL.md +2 -2
- package/skills/audio/adaptive-music/SKILL.md +1 -1
- package/skills/audio/audio-direction/SKILL.md +5 -5
- package/skills/audio/sound-effect/SKILL.md +2 -2
- package/skills/audio/voice-line/SKILL.md +25 -3
- package/skills/character-controllers/fps-controller/SKILL.md +5 -5
- package/skills/debugging/debug/SKILL.md +39 -1
- package/skills/deployment/export-and-ship/SKILL.md +4 -4
- package/skills/gameplay-mechanics/auto-fire-targeting/SKILL.md +170 -0
- package/skills/gameplay-mechanics/design-mechanic/SKILL.md +8 -8
- package/skills/level-design/design-level/SKILL.md +5 -5
- package/skills/level-design/scene-to-level/SKILL.md +125 -0
- package/skills/multiplayer-and-networking/host-authoritative-state/SKILL.md +4 -4
- package/skills/multiplayer-and-networking/peer-to-peer-multiplayer/SKILL.md +4 -4
- package/skills/multiplayer-and-networking/setup-multiplayer/SKILL.md +7 -7
- package/skills/performance/tune-performance/SKILL.md +5 -5
- package/skills/rendering-and-lighting/3d-lighting/SKILL.md +1 -1
- package/skills/rendering-and-lighting/art-direction/SKILL.md +5 -5
- package/skills/scene-and-project/brainstorm-game/SKILL.md +4 -4
- package/skills/scene-and-project/play/SKILL.md +1 -1
- package/skills/scene-and-project/scene-composition/SKILL.md +30 -1
- package/skills/scripting-patterns/gdscript-patterns/SKILL.md +53 -0
- package/skills/ui-and-ux/ui-basics/SKILL.md +1 -1
- package/skills/video/animated-loop/SKILL.md +1 -1
- package/skills/video/cinematic-cutscene/SKILL.md +1 -1
- package/skills/video/trailer-shot/SKILL.md +1 -1
- package/skills/visual-effects/game-feel/SKILL.md +6 -6
- package/skills/workflow/brainstorming/SKILL.md +164 -0
- package/skills/workflow/brainstorming/scripts/frame-template.html +214 -0
- package/skills/workflow/brainstorming/scripts/helper.js +88 -0
- package/skills/workflow/brainstorming/scripts/server.cjs +354 -0
- package/skills/workflow/brainstorming/scripts/start-server.sh +148 -0
- package/skills/workflow/brainstorming/scripts/stop-server.sh +56 -0
- package/skills/workflow/brainstorming/spec-document-reviewer-prompt.md +49 -0
- package/skills/workflow/brainstorming/visual-companion.md +287 -0
- package/skills/workflow/debugging-game-feel/SKILL.md +174 -0
- package/skills/workflow/diagnosing-perf-regressions/SKILL.md +190 -0
- package/skills/workflow/dispatching-parallel-agents/SKILL.md +182 -0
- package/skills/workflow/gameskill/SKILL.md +111 -0
- package/skills/workflow/investigating-bugs/CREATION-LOG.md +119 -0
- package/skills/workflow/investigating-bugs/SKILL.md +296 -0
- package/skills/workflow/investigating-bugs/condition-based-waiting-example.ts +158 -0
- package/skills/workflow/investigating-bugs/condition-based-waiting.md +115 -0
- package/skills/workflow/investigating-bugs/defense-in-depth.md +122 -0
- package/skills/workflow/investigating-bugs/find-polluter.sh +63 -0
- package/skills/workflow/investigating-bugs/root-cause-tracing.md +169 -0
- package/skills/workflow/investigating-bugs/test-academic.md +14 -0
- package/skills/workflow/investigating-bugs/test-pressure-1.md +58 -0
- package/skills/workflow/investigating-bugs/test-pressure-2.md +68 -0
- package/skills/workflow/investigating-bugs/test-pressure-3.md +69 -0
- package/skills/workflow/playtesting-a-feature/SKILL.md +173 -0
- package/skills/{_meta → workflow}/skill-create/SKILL.md +32 -22
- package/skills/{_meta → workflow}/skill-improve/SKILL.md +9 -10
- package/skills/{_meta → workflow}/skill-test/SKILL.md +12 -12
- package/skills/{_meta → workflow}/using-summer/SKILL.md +5 -2
- package/skills/workflow/verification-before-completion/SKILL.md +139 -0
- package/skills/workflow/writing-plans/SKILL.md +152 -0
- package/skills/workflow/writing-plans/plan-document-reviewer-prompt.md +49 -0
- package/skills/workflow/writing-skills/SKILL.md +655 -0
- package/skills/workflow/writing-skills/anthropic-best-practices.md +1150 -0
- package/skills/workflow/writing-skills/examples/CLAUDE_MD_TESTING.md +189 -0
- package/skills/workflow/writing-skills/graphviz-conventions.dot +172 -0
- package/skills/workflow/writing-skills/persuasion-principles.md +187 -0
- package/skills/workflow/writing-skills/render-graphs.js +168 -0
- package/skills/workflow/writing-skills/testing-skills-with-subagents.md +384 -0
- package/dist/commands/assets.d.ts +0 -2
- package/dist/commands/assets.js +0 -189
- package/dist/commands/debug.d.ts +0 -2
- package/dist/commands/debug.js +0 -127
- package/dist/commands/doctor.test.d.ts +0 -1
- package/dist/commands/doctor.test.js +0 -29
- package/dist/commands/project.d.ts +0 -2
- package/dist/commands/project.js +0 -170
- package/dist/commands/scene.d.ts +0 -2
- package/dist/commands/scene.js +0 -290
- package/dist/lib/agent-config.test.d.ts +0 -1
- package/dist/lib/agent-config.test.js +0 -80
- package/dist/lib/format.test.d.ts +0 -1
- package/dist/lib/format.test.js +0 -36
- package/dist/lib/plugin-manifests.test.d.ts +0 -1
- package/dist/lib/plugin-manifests.test.js +0 -134
- package/dist/lib/with-engine.d.ts +0 -14
- package/dist/lib/with-engine.js +0 -109
- package/skills/_shared/collaborative-protocol.md +0 -50
- package/skills/_shared/gd-style.md +0 -121
- package/skills/_shared/godot-version.md +0 -32
- package/skills/_shared/mcp-tools-reference.md +0 -133
- package/skills/_shared/summer-folder.md +0 -44
- package/skills/_shared/template-registry.md +0 -40
- package/skills/_tests/runner.md +0 -90
- package/skills/_tests/specs/3d-lighting.md +0 -19
- package/skills/_tests/specs/art-direction.md +0 -115
- package/skills/_tests/specs/asset-strategy.md +0 -19
- package/skills/_tests/specs/audio-direction.md +0 -123
- package/skills/_tests/specs/brainstorm-game.md +0 -99
- package/skills/_tests/specs/debug.md +0 -94
- package/skills/_tests/specs/design-level.md +0 -113
- package/skills/_tests/specs/design-mechanic.md +0 -112
- package/skills/_tests/specs/design-npc.md +0 -143
- package/skills/_tests/specs/export-and-ship.md +0 -114
- package/skills/_tests/specs/fps-controller.md +0 -113
- package/skills/_tests/specs/gdscript-patterns.md +0 -19
- package/skills/_tests/specs/host-authoritative-state.md +0 -104
- package/skills/_tests/specs/make-game.md +0 -19
- package/skills/_tests/specs/peer-to-peer-multiplayer.md +0 -99
- package/skills/_tests/specs/play.md +0 -88
- package/skills/_tests/specs/scene-composition.md +0 -19
- package/skills/_tests/specs/setup-multiplayer.md +0 -106
- package/skills/_tests/specs/tune-performance.md +0 -104
- package/skills/_tests/specs/ui-basics.md +0 -19
- package/skills/_tests/specs/vfx.md +0 -116
- package/skills/catalog.yaml +0 -991
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
{
|
|
8
8
|
"name": "summer",
|
|
9
9
|
"source": "./",
|
|
10
|
-
"version": "2.
|
|
10
|
+
"version": "2.5.0",
|
|
11
11
|
"description": "Superpowers for AI game dev. 60 auto-trigger skills under summer: namespace, MCP bridge to the local Summer Engine, session-start + pre-commit hooks.",
|
|
12
12
|
"author": { "name": "Summer Engine", "email": "founders@summerengine.com" },
|
|
13
13
|
"category": "game-development",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json",
|
|
3
3
|
"name": "summer",
|
|
4
|
-
"version": "2.
|
|
4
|
+
"version": "2.5.0",
|
|
5
5
|
"description": "Superpowers for AI game dev. 60 auto-trigger skills + lifecycle hooks + MCP bridge to the local Summer Engine — the AI-native game engine.",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "Summer Engine",
|
|
@@ -26,10 +26,20 @@
|
|
|
26
26
|
"performance"
|
|
27
27
|
],
|
|
28
28
|
"skills": [
|
|
29
|
-
"./skills/
|
|
30
|
-
"./skills/
|
|
31
|
-
"./skills/
|
|
32
|
-
"./skills/
|
|
29
|
+
"./skills/workflow/using-summer/",
|
|
30
|
+
"./skills/workflow/skill-create/",
|
|
31
|
+
"./skills/workflow/skill-improve/",
|
|
32
|
+
"./skills/workflow/skill-test/",
|
|
33
|
+
"./skills/workflow/gameskill/",
|
|
34
|
+
"./skills/workflow/brainstorming/",
|
|
35
|
+
"./skills/workflow/investigating-bugs/",
|
|
36
|
+
"./skills/workflow/verification-before-completion/",
|
|
37
|
+
"./skills/workflow/writing-plans/",
|
|
38
|
+
"./skills/workflow/dispatching-parallel-agents/",
|
|
39
|
+
"./skills/workflow/writing-skills/",
|
|
40
|
+
"./skills/workflow/playtesting-a-feature/",
|
|
41
|
+
"./skills/workflow/debugging-game-feel/",
|
|
42
|
+
"./skills/workflow/diagnosing-perf-regressions/",
|
|
33
43
|
"./skills/scene-and-project/brainstorm-game/",
|
|
34
44
|
"./skills/scene-and-project/new-project/",
|
|
35
45
|
"./skills/scene-and-project/browse-templates/",
|
|
@@ -38,7 +48,9 @@
|
|
|
38
48
|
"./skills/scene-and-project/make-game/",
|
|
39
49
|
"./skills/debugging/debug/",
|
|
40
50
|
"./skills/gameplay-mechanics/design-mechanic/",
|
|
51
|
+
"./skills/gameplay-mechanics/auto-fire-targeting/",
|
|
41
52
|
"./skills/level-design/design-level/",
|
|
53
|
+
"./skills/level-design/scene-to-level/",
|
|
42
54
|
"./skills/rendering-and-lighting/art-direction/",
|
|
43
55
|
"./skills/rendering-and-lighting/3d-lighting/",
|
|
44
56
|
"./skills/audio/audio-direction/",
|
|
@@ -60,6 +72,9 @@
|
|
|
60
72
|
"./skills/2d-assets/tileable-texture/",
|
|
61
73
|
"./skills/2d-assets/sprite-sheet/",
|
|
62
74
|
"./skills/2d-assets/skybox-panorama/",
|
|
75
|
+
"./skills/2d-assets/create-asset-sheet/",
|
|
76
|
+
"./skills/2d-assets/instantiate-asset-pack/",
|
|
77
|
+
"./skills/2d-assets/use-widget-asset/",
|
|
63
78
|
"./skills/3d-assets/prop-model/",
|
|
64
79
|
"./skills/3d-assets/character-model/",
|
|
65
80
|
"./skills/3d-assets/environment-kit/",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "summer",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.5.0",
|
|
4
4
|
"description": "Superpowers for AI game dev. 60 auto-trigger skills, MCP bridge to the local Summer Engine, lifecycle hooks. Build games by talking.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Summer Engine",
|
|
@@ -15,10 +15,20 @@
|
|
|
15
15
|
"workflow", "level-design", "vfx", "multiplayer"
|
|
16
16
|
],
|
|
17
17
|
"skills": [
|
|
18
|
-
"./skills/
|
|
19
|
-
"./skills/
|
|
20
|
-
"./skills/
|
|
21
|
-
"./skills/
|
|
18
|
+
"./skills/workflow/using-summer/",
|
|
19
|
+
"./skills/workflow/skill-create/",
|
|
20
|
+
"./skills/workflow/skill-improve/",
|
|
21
|
+
"./skills/workflow/skill-test/",
|
|
22
|
+
"./skills/workflow/gameskill/",
|
|
23
|
+
"./skills/workflow/brainstorming/",
|
|
24
|
+
"./skills/workflow/investigating-bugs/",
|
|
25
|
+
"./skills/workflow/verification-before-completion/",
|
|
26
|
+
"./skills/workflow/writing-plans/",
|
|
27
|
+
"./skills/workflow/dispatching-parallel-agents/",
|
|
28
|
+
"./skills/workflow/writing-skills/",
|
|
29
|
+
"./skills/workflow/playtesting-a-feature/",
|
|
30
|
+
"./skills/workflow/debugging-game-feel/",
|
|
31
|
+
"./skills/workflow/diagnosing-perf-regressions/",
|
|
22
32
|
"./skills/scene-and-project/brainstorm-game/",
|
|
23
33
|
"./skills/scene-and-project/new-project/",
|
|
24
34
|
"./skills/scene-and-project/browse-templates/",
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"$schema": "https://cursor.com/schemas/cursor-plugin/plugin.json",
|
|
3
3
|
"name": "summer",
|
|
4
4
|
"displayName": "Summer",
|
|
5
|
-
"version": "2.
|
|
5
|
+
"version": "2.5.0",
|
|
6
6
|
"description": "Superpowers for AI game dev. 60 auto-trigger skills + lifecycle hooks + MCP bridge to the local Summer Engine — the AI-native game engine.",
|
|
7
7
|
"author": { "name": "Summer Engine", "email": "founders@summerengine.com" },
|
|
8
8
|
"publisher": "summer-engine",
|
|
@@ -17,10 +17,20 @@
|
|
|
17
17
|
],
|
|
18
18
|
"tags": ["game-dev", "ai", "godot", "creative", "design"],
|
|
19
19
|
"skills": [
|
|
20
|
-
"./skills/
|
|
21
|
-
"./skills/
|
|
22
|
-
"./skills/
|
|
23
|
-
"./skills/
|
|
20
|
+
"./skills/workflow/using-summer/",
|
|
21
|
+
"./skills/workflow/skill-create/",
|
|
22
|
+
"./skills/workflow/skill-improve/",
|
|
23
|
+
"./skills/workflow/skill-test/",
|
|
24
|
+
"./skills/workflow/gameskill/",
|
|
25
|
+
"./skills/workflow/brainstorming/",
|
|
26
|
+
"./skills/workflow/investigating-bugs/",
|
|
27
|
+
"./skills/workflow/verification-before-completion/",
|
|
28
|
+
"./skills/workflow/writing-plans/",
|
|
29
|
+
"./skills/workflow/dispatching-parallel-agents/",
|
|
30
|
+
"./skills/workflow/writing-skills/",
|
|
31
|
+
"./skills/workflow/playtesting-a-feature/",
|
|
32
|
+
"./skills/workflow/debugging-game-feel/",
|
|
33
|
+
"./skills/workflow/diagnosing-perf-regressions/",
|
|
24
34
|
"./skills/scene-and-project/brainstorm-game/",
|
|
25
35
|
"./skills/scene-and-project/new-project/",
|
|
26
36
|
"./skills/scene-and-project/browse-templates/",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "summer",
|
|
3
|
-
"description": "Superpowers for AI game dev.
|
|
4
|
-
"version": "2.0
|
|
3
|
+
"description": "Superpowers for AI game dev. 60 auto-trigger skills + lifecycle hooks + MCP bridge to the local Summer Engine — the AI-native game engine.",
|
|
4
|
+
"version": "2.5.0",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Summer Engine",
|
|
7
7
|
"email": "founders@summerengine.com",
|
package/.opencode/INSTALL.md
CHANGED
|
@@ -63,7 +63,7 @@ The model should auto-invoke the `summer:fps-controller` skill before writing an
|
|
|
63
63
|
|---|---|
|
|
64
64
|
| No orientation banner appears | Verify `plugin` array in `opencode.json` and that `summer-engine` is installed in `node_modules/`. |
|
|
65
65
|
| MCP tools return "not connected" | Run `summer run` to launch the engine. The MCP server lazy-connects on the first tool call. |
|
|
66
|
-
| `summer` command not found | `
|
|
66
|
+
| `summer` command not found | Use `npx -y summer-engine@latest <command>` or install the CLI globally only if you want a persistent `summer` command. |
|
|
67
67
|
| Skills don't auto-trigger | The using-summer skill loads on first user message; if that message is empty (e.g. a startup probe), they'll trigger on the second. |
|
|
68
68
|
|
|
69
69
|
## Uninstall
|
package/CHANGELOG.md
CHANGED
|
@@ -2,13 +2,34 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to summer-engine will be documented here. Following [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and [Semantic Versioning](https://semver.org/).
|
|
4
4
|
|
|
5
|
+
## [2.5.0] — 2026-05-27 — "Project Memory"
|
|
6
|
+
|
|
7
|
+
Note: `2.1.0` through `2.4.0` were internal package/plugin snapshots in the engine repo. npm `latest` was still `2.3.0` before this release, so `2.5.0` is the public catch-up release for the memory, setup, and MCP reliability work.
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
- `summer memory` — read-only CLI view of `.summer` project memory, with `--json`, `show <file>`, and `path` subcommands.
|
|
11
|
+
- `projectMemory` in `summer_get_project_context` — lightweight summary of `.summer` canonical files and structured memory for agents.
|
|
12
|
+
- `.summer/memory/` convention for locked project facts such as voice IDs, world canon, provider bindings, and cross-session decisions.
|
|
13
|
+
- Project-memory checks in `summer status` and `summer doctor`.
|
|
14
|
+
- First-class `summer setup github-copilot` and `summer setup vscode-copilot` targets for Copilot CLI and GitHub Copilot in VS Code.
|
|
15
|
+
- Copy-paste setup prompt docs: users can paste "Install Summer Engine and let's make a game." into their AI environment instead of starting with npm commands.
|
|
16
|
+
|
|
17
|
+
### Changed
|
|
18
|
+
- `/summer:voice-line` now writes locked cast assignments to `.summer/memory/casting/voices.md`, while still reading legacy `.summer/voice-cast.md`.
|
|
19
|
+
- Agent playbook and `using-summer` now require agents to read relevant project memory before creative/audio/dialogue/level/character work.
|
|
20
|
+
- CLI and docs now link directly to the public source repo: `https://github.com/SummerEngine/summer`.
|
|
21
|
+
|
|
22
|
+
### Fixed
|
|
23
|
+
- MCP project context now falls back to engine health fields for project path, project name, and current scene.
|
|
24
|
+
- Mutating MCP tools now surface failure terminal states and no-results failure envelopes instead of masking them as success.
|
|
25
|
+
|
|
5
26
|
## [2.0.0] — 2026-05-09 — "Superpowers"
|
|
6
27
|
|
|
7
28
|
The plugin rebrand. Summer is now positioned as superpowers for AI game dev — installable in Claude Code, Codex (CLI + App), Cursor, Factory Droid, Gemini CLI, OpenCode, GitHub Copilot CLI, and Windsurf with one canonical command per harness.
|
|
8
29
|
|
|
9
30
|
### Added
|
|
10
31
|
- **`summer:using-summer`** meta-skill — establishes workflow priority, red-flag list, and skill-invocation discipline. Auto-loads on session start. Modeled on `superpowers:using-superpowers`.
|
|
11
|
-
- **`summer:debug`** skill — the missing flagship skill. Disciplined script-errors → console → debugger → hypothesize → propose → fix → verify loop. Honors all 4 cases in `
|
|
32
|
+
- **`summer:debug`** skill — the missing flagship skill. Disciplined script-errors → console → debugger → hypothesize → propose → fix → verify loop. Honors all 4 cases in `tests/specs/debug.md`.
|
|
12
33
|
- **Manifest validator** (`src/lib/plugin-manifests.test.ts`) — vitest test that walks every plugin manifest and verifies each referenced skill resolves to a real `SKILL.md` on disk. Also enforces the "Use when…" auto-trigger pattern in every skill's description.
|
|
13
34
|
- **`AGENTS.md`** + **`GEMINI.md`** at repo root — context primer for harnesses that read AGENTS-style files (Codex, Factory) and the Gemini extension.
|
|
14
35
|
- **`.opencode/INSTALL.md`** — explicit OpenCode setup guide.
|
|
@@ -36,10 +57,10 @@ The plugin rebrand. Summer is now positioned as superpowers for AI game dev —
|
|
|
36
57
|
|
|
37
58
|
### Fixed
|
|
38
59
|
- `summer_input_map_bind` syntax aligned across `fps-controller` SKILL.md and its behavioral test spec.
|
|
39
|
-
- `
|
|
60
|
+
- `workflow/skill-test` static linter relaxed to allow forward-reference `See also` links to other SKILL.md files (warn instead of fail).
|
|
40
61
|
|
|
41
62
|
### Added
|
|
42
|
-
- `
|
|
63
|
+
- `references/summer-folder.md` — canonical `.summer/` folder convention (documents files written by `/summer:brainstorm-game`, `/summer:art-direction`, etc.).
|
|
43
64
|
- `CHANGELOG.md` — retroactive v1.0.0 → v1.3.1 history.
|
|
44
65
|
|
|
45
66
|
## [1.3.1] — 2026-05-05
|
|
@@ -64,9 +85,9 @@ The plugin rebrand. Summer is now positioned as superpowers for AI game dev —
|
|
|
64
85
|
|
|
65
86
|
### Added
|
|
66
87
|
- 20-category skill library scaffold with descriptive folder names (`character-controllers`, `gameplay-mechanics`, `scripting-patterns`, etc.).
|
|
67
|
-
- `
|
|
68
|
-
- `
|
|
69
|
-
- `
|
|
88
|
+
- `references/` directory with 5 canonical references (godot-version, mcp-tools-reference, collaborative-protocol, template-registry, gd-style).
|
|
89
|
+
- `workflow/` directory with 3 meta-skills (skill-test linter, skill-create bootstrap, skill-improve eval harness).
|
|
90
|
+
- `tests/specs/` directory with per-skill behavioral test specs (fps-controller as canonical format).
|
|
70
91
|
- `catalog.yaml` — 85-skill roadmap with HAVE / NEXT / LATER status.
|
|
71
92
|
|
|
72
93
|
### Changed
|
package/CLAUDE.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# Summer — Claude context
|
|
2
2
|
|
|
3
|
-
This file primes Claude Code on Summer when it loads from this repo. The full agent workflow lives in `skills/
|
|
3
|
+
This file primes Claude Code on Summer when it loads from this repo. The full agent workflow lives in `skills/workflow/using-summer/SKILL.md`; activate that skill on every fresh session.
|
|
4
4
|
|
|
5
|
-
@./skills/
|
|
5
|
+
@./skills/workflow/using-summer/SKILL.md
|
package/GEMINI.md
CHANGED
|
@@ -51,6 +51,5 @@ Tools return "Summer Engine is not running." Tell the user to run `summer run` (
|
|
|
51
51
|
|
|
52
52
|
If skills aren't loading or the MCP server fails:
|
|
53
53
|
|
|
54
|
-
- `
|
|
55
|
-
- `
|
|
56
|
-
- `summer doctor` — reports auth, engine, port, skill state.
|
|
54
|
+
- `npx -y summer-engine@latest setup gemini --yes --force` — writes the right MCP config.
|
|
55
|
+
- `npx -y summer-engine@latest doctor` — reports auth, engine, port, project memory, and skill state.
|
package/README.md
CHANGED
|
@@ -2,7 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
Build real 2D and 3D games through conversation. No coding required. Export to Steam, desktop, mobile, and web. Built on the Godot team's work, customized and honed so AI agents and humans can collaborate on great games.
|
|
4
4
|
|
|
5
|
-
**Summer** is the open-source plugin that connects your AI coding agent to Summer Engine. MIT licensed.
|
|
5
|
+
**Summer** is the open-source plugin that connects your AI coding agent to Summer Engine. MIT licensed. First-class setup works in Claude Code, Cursor, Codex, Windsurf, Cline, Roo Code, Gemini CLI, GitHub Copilot CLI, GitHub Copilot in VS Code, and OpenCode. Factory Droid uses the plugin marketplace path.
|
|
6
|
+
|
|
7
|
+
- **Source:** [github.com/SummerEngine/summer](https://github.com/SummerEngine/summer)
|
|
8
|
+
- **Docs:** [summerengine.com/docs](https://summerengine.com/docs)
|
|
9
|
+
- **MCP setup:** [summerengine.com/mcp](https://summerengine.com/mcp)
|
|
6
10
|
|
|
7
11
|
It just works. Open your agent, say *"let's make an FPS in Summer Engine,"* and it does.
|
|
8
12
|
|
|
@@ -10,7 +14,7 @@ It just works. Open your agent, say *"let's make an FPS in Summer Engine,"* and
|
|
|
10
14
|
|
|
11
15
|
## Get started — one prompt
|
|
12
16
|
|
|
13
|
-
Open Claude Code
|
|
17
|
+
Open your AI agent (Claude Code, Cursor, Codex, Copilot, Windsurf, etc.) and paste:
|
|
14
18
|
|
|
15
19
|
> Install Summer Engine and let's make a game.
|
|
16
20
|
|
|
@@ -29,7 +33,7 @@ At that point the agent has the skills, the MCP server, and your engine running.
|
|
|
29
33
|
|
|
30
34
|
## AGENTS READING THIS — the install playbook
|
|
31
35
|
|
|
32
|
-
You are an AI coding agent
|
|
36
|
+
You are an AI coding agent. The user told you to install Summer Engine. **Run this playbook via your shell** — Bash on macOS/Linux or PowerShell on Windows; `npx -y` is shell-agnostic and works identically in both. Detection first, then only install what's missing — never double-install.
|
|
33
37
|
|
|
34
38
|
### Step −1 — Verify Node.js is on PATH
|
|
35
39
|
|
|
@@ -53,12 +57,15 @@ Parse the JSON output. Top-level `ok: true` means everything is installed and yo
|
|
|
53
57
|
{
|
|
54
58
|
"ok": true | false,
|
|
55
59
|
"checks": [
|
|
56
|
-
{ "id": "node-version",
|
|
57
|
-
{ "id": "cli-version",
|
|
58
|
-
{ "id": "
|
|
59
|
-
{ "id": "
|
|
60
|
-
{ "id": "
|
|
61
|
-
{ "id": "
|
|
60
|
+
{ "id": "node-version", "status": "ok" | "warning" | "fail", ... },
|
|
61
|
+
{ "id": "cli-version", "status": "ok" | "warning" | "fail", ... },
|
|
62
|
+
{ "id": "cli-version-current", "status": "ok" | "warning" | "fail", ... },
|
|
63
|
+
{ "id": "skills-version-stale","status": "ok" | "warning" | "fail", ... },
|
|
64
|
+
{ "id": "login", "status": "ok" | "warning" | "fail", ... },
|
|
65
|
+
{ "id": "engine-install", "status": "ok" | "warning" | "fail", ... },
|
|
66
|
+
{ "id": "local-api", "status": "ok" | "warning" | "fail", ... },
|
|
67
|
+
{ "id": "project-memory", "status": "ok" | "warning" | "fail", ... },
|
|
68
|
+
{ "id": "mcp-server", "status": "ok" | "warning" | "fail", ... }
|
|
62
69
|
]
|
|
63
70
|
}
|
|
64
71
|
```
|
|
@@ -67,21 +74,23 @@ Parse the JSON output. Top-level `ok: true` means everything is installed and yo
|
|
|
67
74
|
|---|---|---|
|
|
68
75
|
| `node-version` | continue | (Step −1 already covered this) |
|
|
69
76
|
| `cli-version` | (always ok via npx) | — |
|
|
77
|
+
| `cli-version-current` | continue | run `npx clear-npx-cache && npx -y summer-engine@latest doctor --json` (forces a fresh resolve) |
|
|
78
|
+
| `skills-version-stale` | skip Step 1 | run Step 1 with `--force` |
|
|
70
79
|
| `engine-install` | skip Step 2 | run Step 2 |
|
|
71
80
|
| `login` | skip Step 3 | run Step 3 |
|
|
72
81
|
| `local-api` | skip Step 5b wait-loop | run wait-loop after `summer run` |
|
|
82
|
+
| `project-memory` | continue | if a project is open, run `summer:brainstorm-game` before building |
|
|
73
83
|
| `mcp-server` | skip Step 1 | run Step 1 |
|
|
74
|
-
| (skills installed) | skip Step 1 | run Step 1 |
|
|
75
84
|
|
|
76
|
-
|
|
85
|
+
**On version drift:** if either `cli-version-current` or `skills-version-stale` returns `warning` or `fail`, you should refresh before proceeding. Tell the user once: "There's a newer Summer (X.Y.Z → A.B.C); updating before we start." Then run the recommended action from `details.recommendedAction` and re-run doctor. Don't ask the user to choose — they paste 'install' and want the latest.
|
|
77
86
|
|
|
78
87
|
### Step 1 — Install user-level skills (idempotent, fast)
|
|
79
88
|
|
|
80
89
|
```bash
|
|
81
|
-
npx -y summer-engine@latest setup claude-code --yes
|
|
90
|
+
npx -y summer-engine@latest setup claude-code --yes --force
|
|
82
91
|
```
|
|
83
92
|
|
|
84
|
-
Replace `claude-code` with the user's actual agent: `codex`, `cursor`, `windsurf`, `cline`, `roo-code`, `gemini`, or `opencode`.
|
|
93
|
+
Replace `claude-code` with the user's actual agent: `codex`, `cursor`, `windsurf`, `cline`, `roo-code`, `gemini`, `github-copilot`, `vscode-copilot`, or `opencode`. Use `github-copilot` for Copilot CLI and `vscode-copilot` for GitHub Copilot Chat/Agent in VS Code. Factory Droid still uses the plugin marketplace path in the install section below. This writes 60 skill files to `~/.claude/skills/<name>/SKILL.md` (or the agent's equivalent user-skill directory) AND writes the MCP server config so the agent can talk to the engine. The `--force` flag wipes any stale skill content first, so re-runs always end up with the latest copy.
|
|
85
94
|
|
|
86
95
|
**First-install detection:** if `~/.claude/skills/` didn't exist before this command, Claude Code wasn't watching it and won't auto-detect the new files this session. Tell the user **once**: "Skills installed — restart your agent so they load." On subsequent installs (directory already existed), skills auto-detect mid-session and no restart is needed. **You can detect first-install vs upgrade by checking if `~/.claude/skills/` existed before Step 1; record the result before running setup.**
|
|
87
96
|
|
|
@@ -151,6 +160,8 @@ Once `local-api` is `ok`, MCP tools are safe to call.
|
|
|
151
160
|
|
|
152
161
|
Now you have skills + MCP. **Don't jump into `summer create` content from a vague prompt** — invoke the `summer:brainstorm-game` skill via the `Skill` tool first. It scopes mechanics, art direction, and the V1 cut list, and writes the result to `.summer/GameSoul.md`. Every other Summer skill reads from that file.
|
|
153
162
|
|
|
163
|
+
Project memory lives in `.summer/` as readable Markdown. Use `.summer/memory/` for locked facts that should not drift across sessions, such as character voice IDs, world canon, and provider bindings. Users can inspect it with `summer memory`; agents should read relevant memory surfaced by `summer_get_project_context` before changing creative/audio/dialogue/level/character work.
|
|
164
|
+
|
|
154
165
|
Only skip brainstorm if the user explicitly said "skip brainstorm" or "just build the X already." After brainstorm, the appropriate build skills (`fps-controller`, `design-mechanic`, `design-level`, `make-game`, etc.) auto-trigger from natural language.
|
|
155
166
|
|
|
156
167
|
### Anti-patterns (do NOT do these)
|
|
@@ -169,9 +180,9 @@ Only skip brainstorm if the user explicitly said "skip brainstorm" or "just buil
|
|
|
169
180
|
- **Don't loop `summer login` if it times out at 120s.** Re-run it once and tell the user to be quicker; loop forever and the user is stuck.
|
|
170
181
|
- **Don't jump straight into `summer create` from a vague prompt.** Invoke `summer:brainstorm-game` first (Step 6). The build skills assume `.summer/GameSoul.md` exists.
|
|
171
182
|
|
|
172
|
-
**Using a different agent?** Replace `claude-code` with any supported agent in Step 1: `codex`, `cursor`, `windsurf`, `cline`, `roo-code`, `gemini`, or `opencode`. Skill targets vary per agent (Cursor uses `.cursor/rules/`, Windsurf uses `.windsurfrules`, Cline + Roo use `.clinerules/`, OpenCode uses agent definitions, etc.). The CLI handles the difference. After install, **Cline and Roo Code users should restart VS Code** so the extension reloads its MCP config. **Gemini users** may need to run `gemini extensions enable summer-engine` after the first install. **
|
|
183
|
+
**Using a different agent?** Replace `claude-code` with any supported agent in Step 1: `codex`, `cursor`, `windsurf`, `cline`, `roo-code`, `gemini`, `github-copilot`, `vscode-copilot`, or `opencode`. Skill targets vary per agent (Cursor uses `.cursor/rules/`, Windsurf uses `.windsurfrules`, Cline + Roo use `.clinerules/`, Copilot uses `~/.copilot/skills` or `.github/skills`, OpenCode uses agent definitions, etc.). The CLI handles the difference. After install, **Cline and Roo Code users should restart VS Code** so the extension reloads its MCP config. **Gemini users** may need to run `gemini extensions enable summer-engine` after the first install. **VS Code Copilot users** should start the `summer-engine` MCP server from Agent mode if VS Code does not autostart it. **Factory Droid** still has its own plugin path below.
|
|
173
184
|
|
|
174
|
-
**Power-user note:** if the user specifically wants `summer` on their `PATH` for everyday terminal use
|
|
185
|
+
**Power-user note:** if the user specifically wants `summer` on their `PATH` for everyday terminal use outside the AI agent, a global npm install is still possible. The agent flow doesn't need it.
|
|
175
186
|
|
|
176
187
|
---
|
|
177
188
|
|
|
@@ -184,7 +195,7 @@ If you specifically prefer the official Claude Code plugin marketplace UI, you c
|
|
|
184
195
|
/plugin install summer@summer-engine
|
|
185
196
|
```
|
|
186
197
|
|
|
187
|
-
This is functionally equivalent to `summer setup claude-code --yes` for the skill install. You'll still need `summer install` and `summer login` to get the engine running. The agent-driven path above is faster and idempotent; this exists for users who want everything in the plugin TUI.
|
|
198
|
+
This is functionally equivalent to `npx -y summer-engine@latest setup claude-code --yes` for the skill install. You'll still need `npx -y summer-engine@latest install` and `npx -y summer-engine@latest login` to get the engine running. The agent-driven path above is faster and idempotent; this exists for users who want everything in the plugin TUI.
|
|
188
199
|
|
|
189
200
|
---
|
|
190
201
|
|
|
@@ -192,9 +203,9 @@ This is functionally equivalent to `summer setup claude-code --yes` for the skil
|
|
|
192
203
|
|
|
193
204
|
You installed one product. It has three parts. You don't have to think about them — Summer wires them up — but here's what each does:
|
|
194
205
|
|
|
195
|
-
- **Summer Engine** — the game engine app. Where you see, play, and debug your game. Installed by `summer install`. Proprietary, free to use.
|
|
196
|
-
- **Summer plugin** — what Claude Code (or your agent) uses to know what game-dev skills to apply and which tools to call. Installed
|
|
197
|
-
- **Summer CLI** — the terminal command
|
|
206
|
+
- **Summer Engine** — the game engine app. Where you see, play, and debug your game. Installed by the agent via `npx -y summer-engine@latest install`. Proprietary, free to use.
|
|
207
|
+
- **Summer plugin** — what Claude Code (or your agent) uses to know what game-dev skills to apply and which tools to call. Installed by `summer setup` or the marketplace path. MIT, open source.
|
|
208
|
+
- **Summer CLI** — the terminal command layer that installs the engine, scaffolds projects, runs them, signs you in, and starts MCP. Usually invoked through `npx -y summer-engine@latest ...`, so no global install is needed. MIT, open source.
|
|
198
209
|
|
|
199
210
|
The plugin gives the agent the skills. The CLI gives it hands to install and launch the engine. The engine is where the game actually lives.
|
|
200
211
|
|
|
@@ -206,9 +217,9 @@ We tell you before we touch your disk.
|
|
|
206
217
|
|
|
207
218
|
| What | Size | When | Source |
|
|
208
219
|
|---|---|---|---|
|
|
209
|
-
| `summer-engine` npm package (CLI + plugin source) | ~3 MB | `
|
|
210
|
-
| Summer Engine app | ~1 GB (engine + bundled Git/runtime tools) | `summer install` | Summer's signed releases |
|
|
211
|
-
| Auth token | ~1 KB | `summer login` | Browser → `~/.summer/auth-token` |
|
|
220
|
+
| `summer-engine` npm package (CLI + plugin source) | ~3 MB | first `npx -y summer-engine@latest ...` call | [npmjs.com/package/summer-engine](https://www.npmjs.com/package/summer-engine) |
|
|
221
|
+
| Summer Engine app | ~1 GB (engine + bundled Git/runtime tools) | `npx -y summer-engine@latest install` | Summer's signed releases |
|
|
222
|
+
| Auth token | ~1 KB | `npx -y summer-engine@latest login` | Browser → `~/.summer/auth-token` |
|
|
212
223
|
| Skill files | < 50 KB | bundled in the npm package | no extra network call |
|
|
213
224
|
| Generated assets (3D / image / audio / video) | varies | only on explicit `summer_generate_*` calls | Summer Engine Studio |
|
|
214
225
|
| URL imports | varies | only on explicit `summer_import_from_url` calls | the URL you provide |
|
|
@@ -299,7 +310,7 @@ Twenty-four skills replace "agent flailing through tutorials" with measurable cr
|
|
|
299
310
|
|
|
300
311
|
C# is supported by the engine. A `summer:csharp-patterns` skill is on the roadmap; for now write C# from Godot 4.5 docs.
|
|
301
312
|
|
|
302
|
-
Full
|
|
313
|
+
Full list of shipping skills: the `skills:` array in [`.claude-plugin/plugin.json`](./.claude-plugin/plugin.json).
|
|
303
314
|
|
|
304
315
|
## Philosophy
|
|
305
316
|
|
|
@@ -380,10 +391,19 @@ Drops a Summer extension manifest at `~/.gemini/extensions/summer-engine/`. If t
|
|
|
380
391
|
### GitHub Copilot CLI
|
|
381
392
|
|
|
382
393
|
```bash
|
|
383
|
-
|
|
384
|
-
|
|
394
|
+
npx -y summer-engine@latest setup github-copilot --yes
|
|
395
|
+
```
|
|
396
|
+
|
|
397
|
+
Writes MCP config to `~/.copilot/mcp-config.json` and skills to `~/.copilot/skills/`. In an active Copilot CLI session, run `/mcp reload` and `/skills reload`; otherwise restart Copilot CLI.
|
|
398
|
+
|
|
399
|
+
### GitHub Copilot in VS Code
|
|
400
|
+
|
|
401
|
+
```bash
|
|
402
|
+
npx -y summer-engine@latest setup vscode-copilot --yes
|
|
385
403
|
```
|
|
386
404
|
|
|
405
|
+
Writes MCP config to VS Code's user `mcp.json` and skills to `~/.copilot/skills/`. Restart VS Code or run **MCP: List Servers**, then use Copilot Agent mode.
|
|
406
|
+
|
|
387
407
|
### OpenCode
|
|
388
408
|
|
|
389
409
|
```bash
|
|
@@ -395,9 +415,8 @@ Writes the MCP server entry into `opencode.json` (`~/.config/opencode/opencode.j
|
|
|
395
415
|
### Windsurf and others
|
|
396
416
|
|
|
397
417
|
```bash
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
summer doctor
|
|
418
|
+
npx -y summer-engine@latest setup <agent> --yes --force
|
|
419
|
+
npx -y summer-engine@latest doctor
|
|
401
420
|
```
|
|
402
421
|
|
|
403
422
|
---
|
|
@@ -410,7 +429,9 @@ summer doctor
|
|
|
410
429
|
| `summer login` | Browser-based sign-in. |
|
|
411
430
|
| `summer logout` | Clear auth tokens. |
|
|
412
431
|
| `summer status` | Engine state, port, auth. |
|
|
413
|
-
| `summer doctor` | Diagnose Node, login, engine, MCP. |
|
|
432
|
+
| `summer doctor` | Diagnose Node, login, engine, project memory, MCP. |
|
|
433
|
+
| `summer memory` | Inspect project memory in `.summer`. |
|
|
434
|
+
| `summer memory show <file>` | Print a project memory Markdown file. |
|
|
414
435
|
| `summer run [path]` | Launch the engine. |
|
|
415
436
|
| `summer open <path>` | Open a project in a running engine. |
|
|
416
437
|
| `summer create <template> [name]` | Scaffold a project. |
|
|
@@ -452,7 +473,7 @@ More coming.
|
|
|
452
473
|
Skills evolve fast. Two ways to help:
|
|
453
474
|
|
|
454
475
|
1. **Open an issue** if a skill misfires. Quote the prompt and the response.
|
|
455
|
-
2. **Submit a SKILL.md**
|
|
476
|
+
2. **Submit a new SKILL.md** under `skills/<category>/<name>/`. Register it in `.claude-plugin/plugin.json` and `src/lib/skills-registry.ts`. Run `summer:skill-test` against it before opening the PR.
|
|
456
477
|
|
|
457
478
|
[`docs/DEVELOPMENT.md`](./docs/DEVELOPMENT.md) is the contributor guide.
|
|
458
479
|
|
package/_persona/summer/SKILL.md
CHANGED
|
@@ -50,7 +50,7 @@ When the user invokes `/summer`, you:
|
|
|
50
50
|
| "/summer let me play it" | `summer:scene-and-project/play` |
|
|
51
51
|
| "/summer I'm stuck" or "/summer what should I work on" | `summer:scene-and-project/brainstorm-game` (back to the playable cut) |
|
|
52
52
|
|
|
53
|
-
If nothing on the table fits, fall back to `summer:
|
|
53
|
+
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.
|
|
54
54
|
|
|
55
55
|
## Tone rules
|
|
56
56
|
|
|
@@ -64,7 +64,7 @@ If nothing on the table fits, fall back to `summer:_meta/using-summer` and read
|
|
|
64
64
|
## What to avoid
|
|
65
65
|
|
|
66
66
|
- Don't pretend to be a different model. You're the same model with a sharper voice.
|
|
67
|
-
- Don't invent Summer skills that don't exist. Check the `Skill` index
|
|
67
|
+
- Don't invent Summer skills that don't exist. Check the `Skill` tool's index first.
|
|
68
68
|
- Don't generate without confirming cost. Ever.
|
|
69
69
|
- Don't ship a 30-second response when the user wants the build started. Invoke the right skill and start producing artifacts.
|
|
70
70
|
- Don't redirect users to external docs. Solve the problem in-conversation.
|
|
@@ -107,7 +107,6 @@ If `.summer/GameSoul.md` exists, read it before any creative work. It's the sour
|
|
|
107
107
|
|
|
108
108
|
## See also
|
|
109
109
|
|
|
110
|
-
- `summer:
|
|
111
|
-
- `summer:
|
|
112
|
-
- `summer:
|
|
113
|
-
- `skills/catalog.yaml` — full skill index when the routing table doesn't cover the request.
|
|
110
|
+
- `summer:using-summer` — base context for the Summer skill family (auto-loaded; this persona builds on top).
|
|
111
|
+
- `summer:brainstorm-game` — when starting from scratch or stuck.
|
|
112
|
+
- `summer:play` — push the build into the player's hands.
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
You are capturing what we just learned in this game-development session into Summer Engine's skill library, so the next agent (and every Summer user) gets to start where we ended.
|
|
2
|
+
|
|
3
|
+
This is the meta-skill: the loop that turns ad-hoc fixes into durable, reusable expertise.
|
|
4
|
+
|
|
5
|
+
## What "Summer Engine" is, so you're grounded
|
|
6
|
+
|
|
7
|
+
Three repos, one ecosystem:
|
|
8
|
+
|
|
9
|
+
1. **`~/development/SummerEngine`** — the desktop engine (Godot fork in C++) + the canonical CLI. The engine source lives at `editor/`, `core/`, and the Summer-specific module at `modules/1summer_engine/`. The Summer CLI lives at `tools/summer-cli/`. It ships as `npm i -g summer-engine`. It does install/login/create/run for the engine, plus `summer skills install --as-claude-skill` which writes a curated subset of skills into `~/.claude/skills/` for any agent to auto-discover.
|
|
10
|
+
2. **`~/development/PublicSummerEngine`** — 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 MCP-style consumers of the engine API (`src/lib/bridge/direct-executor.ts`, `src/lib/ai/tools/run-and-verify.ts`) which call the same engine endpoints the CLI does.
|
|
11
|
+
3. **The active game project** — usually `~/development/<game-name>` (Godot 4.6) or whatever game we were just working on. Real working code in this repo is the gold standard for examples.
|
|
12
|
+
|
|
13
|
+
The skill system is the value flywheel: every game we ship teaches lessons → the lessons become skills → the next user (or AI) starts smarter. Your job here is to close that loop for what we just did.
|
|
14
|
+
|
|
15
|
+
## Cross-repo change awareness — read this before any non-trivial fix
|
|
16
|
+
|
|
17
|
+
When the lesson is "the engine should expose more / behave differently," the change usually crosses repo boundaries. Map the layers before you edit:
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
[active game] → calls MCP / web app
|
|
21
|
+
↓
|
|
22
|
+
[summer-cli MCP server (TypeScript)] → calls /api/ops + /api/state/* on the engine
|
|
23
|
+
↓
|
|
24
|
+
[Summer Engine binary (C++ in SummerEngine repo)] — source of truth for what the API can return
|
|
25
|
+
|
|
26
|
+
[PublicSummerEngine web app (TypeScript)] → also calls the same engine endpoints via direct-executor or Redis bridge
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Implications:
|
|
30
|
+
|
|
31
|
+
- **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.
|
|
32
|
+
- **A TypeScript change in `tools/summer-cli/src/mcp/`** only changes what the CLI exposes. The web app has its own TypeScript layer in `PublicSummerEngine/src/lib/bridge/` — same engine endpoints, different glue. Don't assume your CLI tool change is web-app-aware.
|
|
33
|
+
- **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.
|
|
34
|
+
|
|
35
|
+
When you change an engine endpoint's response shape (add fields, rename fields, change semantics):
|
|
36
|
+
|
|
37
|
+
1. Grep both `tools/summer-cli/src/` and `PublicSummerEngine/src/lib/` for consumers of that endpoint.
|
|
38
|
+
2. Confirm the change is **additive** (new fields, no removed/renamed) so existing consumers still work without modification.
|
|
39
|
+
3. If the change is breaking, update both consumers in the same logical commit set.
|
|
40
|
+
4. Note in TOOLING-TODO.md what's now possible that wasn't before.
|
|
41
|
+
|
|
42
|
+
Engine binary changes ship via a rebuild + new release. The user has to pull the new engine for the change to take effect. CLI/web TypeScript changes ship via npm publish or web deploy. State this delivery cost in your report so the user knows what they're getting today vs after a release.
|
|
43
|
+
|
|
44
|
+
## The four skill stores (probe each before doing anything)
|
|
45
|
+
|
|
46
|
+
1. **Canonical source** — `~/development/SummerEngine/tools/summer-cli/skills/`
|
|
47
|
+
- 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.
|
|
48
|
+
- The `skills:` array in `.claude-plugin/plugin.json` is the registry. Sibling shared docs live at top-level `references/`; test specs at top-level `tests/`.
|
|
49
|
+
2. **Claude auto-discovery** — `~/.claude/skills/` (currently 7 skills, written here by `summer skills install --as-claude-skill`).
|
|
50
|
+
3. **Web-app stores** — `~/development/PublicSummerEngine/src/lib/ai/skills/` and `public/knowledge/summer/skills/`. Mirror only if the learning applies to the web chat agent too — check what's there before assuming.
|
|
51
|
+
4. **The active game** — read it as ground truth. Working code from the real project beats invented examples.
|
|
52
|
+
|
|
53
|
+
## What to do, in order
|
|
54
|
+
|
|
55
|
+
1. **One short sentence to the user.** "Capturing learnings from this session into the skill library." That's it. No plan dump.
|
|
56
|
+
|
|
57
|
+
2. **Probe the stores.** Glob each path above. Note what exists and what's empty. Print a tight summary (one line per domain with skill count).
|
|
58
|
+
|
|
59
|
+
3. **Recap the session.** Look back over the conversation. Pull out the 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:
|
|
60
|
+
- A working shader (the actual code) → `visual-effects`
|
|
61
|
+
- A GDScript idiom that beat the obvious approach → `scripting-patterns`
|
|
62
|
+
- A UI layout that survived the design pass → `ui-and-ux`
|
|
63
|
+
- A bug + root cause + fix that wasn't in any docs → `debugging`
|
|
64
|
+
- A Godot 4.6 quirk (type inference, `.keys()` weirdness, signal gotchas) → `scripting-patterns`
|
|
65
|
+
- A spawning/AI/enemy pattern that worked → `ai-and-npcs` or `gameplay-mechanics`
|
|
66
|
+
- A perf fix with measured before/after → `performance`
|
|
67
|
+
- An asset-creation workflow that beat alternatives → `asset-pipeline`
|
|
68
|
+
|
|
69
|
+
Examples that DON'T count:
|
|
70
|
+
- One-off code with no general lesson
|
|
71
|
+
- Stuff already documented in `CLAUDE.md` or an existing skill
|
|
72
|
+
- Personal preference with no reasoning behind it
|
|
73
|
+
- Anything you have to manufacture to fill space
|
|
74
|
+
|
|
75
|
+
4. **Decide placement.** For each learning:
|
|
76
|
+
- **Update existing skill** — name the file, quote the section, draft the addition.
|
|
77
|
+
- **Create new skill** — pick the domain, name the file, draft the full skill markdown.
|
|
78
|
+
Match the format of existing skills in the same domain exactly. Read one if you're unsure.
|
|
79
|
+
|
|
80
|
+
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.
|
|
81
|
+
|
|
82
|
+
6. **Apply.**
|
|
83
|
+
- Write/edit `.md` files under `tools/summer-cli/skills/<domain>/`.
|
|
84
|
+
- Register a new skill in `.claude-plugin/plugin.json` (plus `.codex-plugin/`, `.cursor-plugin/`) AND in `src/lib/skills-registry.ts` `SKILL_REGISTRY`. Both are required.
|
|
85
|
+
- If the skill belongs in the curated Claude set, also write it to `~/.claude/skills/<name>/` so it's live in the current session — and tell the user to consider adding it to the CLI's default install set.
|
|
86
|
+
- If the learning applies to the web chat agent, mirror to `PublicSummerEngine` skill stores too.
|
|
87
|
+
- Run `git status` in `~/development/SummerEngine` (and `PublicSummerEngine` if touched) so the diff is visible.
|
|
88
|
+
|
|
89
|
+
7. **Report.** One short message. Files changed, the future-agent payoff in one sentence per skill, and what (if anything) is still uncaptured.
|
|
90
|
+
|
|
91
|
+
## Style rules — non-negotiable
|
|
92
|
+
|
|
93
|
+
- **Tight. No slop. No glazing.** Mathias hates filler.
|
|
94
|
+
- **Capture the why, not just the what.** "Use X" rots. "Use X because Y breaks under Z (we hit this in PRUT chest reveal, 2026-05)" survives. Always lead skill updates with the reason.
|
|
95
|
+
- **Real working code from the active project beats invented examples.** Lift from PRUT or whatever we were in.
|
|
96
|
+
- **VFX is code** — shaders + GDScript + node setup. Never image-generation pipelines or Meshy prompts.
|
|
97
|
+
- **No em dashes** (—) in any user-facing copy you write into skills. Use periods or restructure the sentence.
|
|
98
|
+
- **`[SUMMER]` markers on core Godot engine file edits** — but skill `.md` files don't need them.
|
|
99
|
+
- **Verify before claiming.** If a skill says "Summer Engine does X" or "Stripe is configured Y way", verify in the actual code/DB before writing it down.
|
|
100
|
+
|
|
101
|
+
## When there's nothing worth capturing
|
|
102
|
+
|
|
103
|
+
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 into the skill library than ship noise.
|