Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
{
"name": "summer",
"source": "./",
"version": "4.8.0",
"version": "4.9.0",
"description": "The game engine built for AI. Any agent makes a multiplayer game and publishes it. A first-run guide (/summer:start), game-dev skills, and two MCP servers: the bridge to the Summer Engine desktop app, and Summer's hosted cloud server for people without it.",
"author": {
"name": "Summer Engine",
Expand Down
2 changes: 1 addition & 1 deletion .claude-plugin/plugin.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json",
"name": "summer",
"displayName": "Summer Engine",
"version": "4.8.0",
"version": "4.9.0",
"description": "The game engine built for AI. Any agent makes a multiplayer game and publishes it. A first-run guide (/summer:start), game-dev skills, and two MCP servers: the bridge to the Summer Engine desktop app, and Summer's hosted cloud server for people without it.",
"author": {
"name": "Summer Engine",
Expand Down
2 changes: 1 addition & 1 deletion .codex-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"_generated": "GENERATED from integrations/codex — do not edit; npm run generate:registry",
"name": "summer",
"version": "4.8.0",
"version": "4.9.0",
"description": "The game engine built for AI. Any agent makes a multiplayer game and publishes it. Game-dev skills, lifecycle hooks, and a 131-tool MCP bridge to the Summer Engine desktop app.",
"author": {
"name": "Summer Engine",
Expand Down
2 changes: 1 addition & 1 deletion .cursor-plugin/plugin.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"_generated": "GENERATED from integrations/cursor — do not edit; npm run generate:registry",
"name": "summer",
"displayName": "Summer Engine",
"version": "4.8.0",
"version": "4.9.0",
"description": "The game engine built for AI. Any agent makes a multiplayer game and publishes it. Game-dev skills, lifecycle hooks, and a 131-tool MCP bridge to the Summer Engine desktop app.",
"author": {
"name": "Summer Engine",
Expand Down
2 changes: 1 addition & 1 deletion .factory-plugin/plugin.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"_generated": "GENERATED from integrations/factory — do not edit; npm run generate:registry",
"name": "summer",
"description": "The game engine built for AI. Any agent makes a multiplayer game and publishes it. Game-dev skills, lifecycle hooks, and a 131-tool MCP bridge to the Summer Engine desktop app.",
"version": "4.8.0",
"version": "4.9.0",
"author": {
"name": "Summer Engine",
"email": "[email protected]",
Expand Down
14 changes: 14 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,21 @@ All notable changes to summer-engine will be documented here. Following [Keep a

## [Unreleased]

## [4.9.0] - 2026-10-24

Games go live on Summer's automatic checks, with Summer's review afterwards: `summer_go_live` and `summer_publish_build` read that review, and name the platforms a hosted release left out.

- **`summer_go_live` reads Summer's review of a live game** (the store's `/review` route, which replaces `/approval`).
- **On hold:** when Summer's staff put a live game on hold and its newest store page is the one they reviewed, it answers `on_hold` with their message: make the changes with `store.update_listing`, then publish the newer page. A new build alone does not lift a hold. A newer draft page is published, which lifts it.
- **Taken down:** it answers `blocked` with `taken_down`.
- A sent-back page's decision comes from the review's `latestReview`; while the platform lacks it, from `/approval` when it answers; else the page still reports `needs_changes` and points at `store.status`. On a platform without `/review`, a first-launch hold reports as Summer's, as before. The waiting answer no longer carries `approvalState`.
- **Platforms a hosted release left out: `notIncluded` and `notUsed`.** `summer_go_live` reads `droppedTargets` from the release, answers `notIncluded` (one entry per platform: the reason, `checkErrorCode` and the line to tell the creator, such as "iOS isn't included: this build couldn't be checked for iPhone.") and goes live on the platforms the release kept instead of waiting for the others. `notUsed` names a newer client the release did not use (that platform stays live with its current client). The live answer's `next` names both.
- **`playable_release_required` answers `blocked`** with the platform's own message, or "Upload a build that includes your game's apps so they can be checked against the new server."
- **"Summer is still checking this; nothing to do on your side."** When a publish's checks have run over an hour, `summer_go_live`'s waiting answer and `summer_publish_build`'s hold say so, with the time (`stillCheckingSince`).
- **`summer_publish_build`'s hold** reads the review too: on hold (with the changes to make), taken down, or Summer's own hold. `approval_denied` now reads "This game was taken down, so it can't take new builds."
- **Copy:** the README, `AGENTS.md`, the project `AGENTS.md` block and the `publish-your-game` skill say a game is live once the automatic checks pass, with staff review afterwards, and tell an automatic-check rejection from a staff hold and a take-down.
- **Windows forms for the release checks.** The `release-readiness`, `multiplayer-publish` and `bounded-engine-runs` skills now give every check a PowerShell form next to the `sh` one: `Expand-Archive` in place of `unzip`, and a small `Run-Summer` helper that bounds a run with `Start-Process` and reads Summer.exe's `--log-file`, in place of `perl` and `grep`.
- The operations catalog is synced from PublicSummerEngine main: the October 2026 models in `assets.generate_image`, `assets.generate_audio`, `assets.generate_sfx_choices` and `assets.generate_video` (among them `nano-banana-2.1`, `flux-3`, `ideogram-4.5`, `recraft-4.1`, `eleven_v4`, `music_v2_5`, `mirelo-sfx-2.0`, `kling-4` and `vidu-q4`), and 480p video.

## [4.8.0] - 2026-10-24

Expand Down
2 changes: 1 addition & 1 deletion gemini-extension.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"_generated": "GENERATED from integrations/gemini — do not edit; npm run generate:registry",
"name": "summer",
"version": "4.8.0",
"version": "4.9.0",
"description": "The game engine built for AI. Any agent makes a multiplayer game and publishes it. The Summer Engine MCP server, context primer and game-dev skills.",
"contextFileName": "GEMINI.md",
"mcpServers": {
Expand Down
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "summer-engine",
"version": "4.8.0",
"version": "4.9.0",
"description": "MCP server, CLI and skills for Summer Engine, the game engine built for AI. Connect Claude Code, Cursor, Codex and other agents to build, test and publish full games to summer.games.",
"mcpName": "io.github.SummerEngine/summer",
"keywords": [
Expand Down
4 changes: 2 additions & 2 deletions plugins/claude/.claude-plugin/plugin.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json",
"name": "summer",
"displayName": "Summer Engine",
"version": "4.8.0",
"version": "4.9.0",
"description": "The game engine built for AI. Any agent makes a multiplayer game and publishes it. A first-run guide (/summer:start), game-dev skills, and two MCP servers: the bridge to the Summer Engine desktop app, and Summer's hosted cloud server for people without it.",
"author": {
"name": "Summer Engine",
Expand Down Expand Up @@ -159,7 +159,7 @@
"command": "npx",
"args": [
"-y",
"summer-engine@4.8.0",
"summer-engine@4.9.0",
"mcp"
]
},
Expand Down
14 changes: 7 additions & 7 deletions plugins/claude/commands/start.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ $ARGUMENTS
## 1. Look before you ask (read-only, a few seconds)

- Tools you already have: the `summer-engine` server (local, drives the Summer Engine desktop app; its tools include `summer_get_project_context`) and the `summer-cloud` server (hosted, Summer's cloud; its tools include `summer_whoami`, `summer_search` and `summer_call` once the user is signed in). A server that needs sign-in shows no tools yet.
- `npx -y summer-engine@4.8.0 status` tells you whether the engine is running. If `npx` is missing, there is no Node: plan it first (3a) and have them install Node 22 or later (nodejs.org) for the build.
- `npx -y summer-engine@4.9.0 status` tells you whether the engine is running. If `npx` is missing, there is no Node: plan it first (3a) and have them install Node 22 or later (nodejs.org) for the build.

Do not run `summer setup claude-code` here: this plugin already brings the MCP servers and the skills, and a second copy of the skills only crowds the list.

Expand All @@ -29,7 +29,7 @@ For 3b, pick the template from the idea (list in 3b) and a folder: a new folder

> I'll install Summer Engine (about 660 MB, free) if needed and open a starter project in `<folder>`, in a window behind your work. OK?

Drop the install part when the `engine-install` check of `npx -y summer-engine@4.8.0 doctor --json` is `ok`. That one yes covers the install, the folder and the window; ask nothing else before the game plays.
Drop the install part when the `engine-install` check of `npx -y summer-engine@4.9.0 doctor --json` is `ok`. That one yes covers the install, the folder and the window; ask nothing else before the game plays.

## 3a. Plan it first

Expand All @@ -38,11 +38,11 @@ A call written `area.action({...})` is the tool `summer_area_action` when your c
1. **Sign in.** If `summer_call` is not available, the `summer-cloud` server needs the user's Summer account. Tell them: type `/mcp`, pick `summer-cloud`, choose **Authenticate**, and sign in in the browser (a free account works). You cannot do this step for them. When they say done, call `whoami()` (the `summer_whoami` tool) to confirm.
2. **Start the game.** As soon as there is an idea (one sentence is enough; ask for one if `$ARGUMENTS` is empty), call `projects.create({ idea })`. Summer starts drawing the plan at once; give them the game's link (`url`) to watch it fill in. Keep its `projectId`.
3. **Shape it, briefly.** Ask at most two short questions, each with two or three concrete options (how it should feel, what the player does). Send each answer with `plans.message({ projectId, text })`. Use `plans.show({ projectId })` to see the cards and their `itemId`s, `plans.edit_card({ projectId, itemId, change })` to change one picture and `plans.choose_look({ projectId, itemId })` when they pick an art style.
4. **Hand it to the engine.** When the user is happy, call `projects.open_in_engine({ projectId })`. It returns the Summer Engine download, the setup steps and the saved direction. Then follow 3b, using the saved direction instead of a template: create and open an empty project (`npx -y summer-engine@4.8.0 dev empty <folder-name>`), save the direction as `res://.summer/GameSoul.md`, and build its first playable milestone with the `make-game` skill. Never describe a game that is not built yet.
4. **Hand it to the engine.** When the user is happy, call `projects.open_in_engine({ projectId })`. It returns the Summer Engine download, the setup steps and the saved direction. Then follow 3b, using the saved direction instead of a template: create and open an empty project (`npx -y summer-engine@4.9.0 dev empty <folder-name>`), save the direction as `res://.summer/GameSoul.md`, and build its first playable milestone with the `make-game` skill. Never describe a game that is not built yet.

## 3b. Build in Summer Engine

No sign-in: engine tools work signed out. Sign in only when a cloud operation (assets, plans, publishing) answers `not_signed_in`: then `npx -y summer-engine@4.8.0 login`.
No sign-in: engine tools work signed out. Sign in only when a cloud operation (assets, plans, publishing) answers `not_signed_in`: then `npx -y summer-engine@4.9.0 login`.

1. **Template** that matches the idea, so the first version already plays:
- platformer: `2d-brario-platformer`
Expand All @@ -55,9 +55,9 @@ No sign-in: engine tools work signed out. Sign in only when a cloud operation (a
- third-person or exploring: `3d-third-person-controller`
- anything else: `3d-basic`

Run `npx -y summer-engine@4.8.0 list templates` if none fits. If `summer dev` is an unknown command (an older summer-engine on npm), run these instead: `npx -y summer-engine@4.8.0 install`, then `create <template> <folder>`, then `run <folder>`.
2. **Install, create and open: one command**, after the user's OK from step 2: `npx -y summer-engine@4.8.0 dev --yes <template> <folder>` (`--yes` is that OK; without it, `summer dev` installs nothing and asks you to ask). Give it a 10-minute timeout: it downloads the engine first when it is missing, then waits until the editor answers and prints one `Connected:` line. If it says the editor is still opening, wait 30 seconds and call `summer_get_project_context`: the `summer-engine` tools find the project `summer dev` opened and wait for it.
In Claude Code Desktop the Browser pane shows the game: `summer dev` added `summer-preview` to `.claude/launch.json` (elsewhere: `npx -y summer-engine@4.8.0 preview --open`, then http://localhost:5199).
Run `npx -y summer-engine@4.9.0 list templates` if none fits. If `summer dev` is an unknown command (an older summer-engine on npm), run these instead: `npx -y summer-engine@4.9.0 install`, then `create <template> <folder>`, then `run <folder>`.
2. **Install, create and open: one command**, after the user's OK from step 2: `npx -y summer-engine@4.9.0 dev --yes <template> <folder>` (`--yes` is that OK; without it, `summer dev` installs nothing and asks you to ask). Give it a 10-minute timeout: it downloads the engine first when it is missing, then waits until the editor answers and prints one `Connected:` line. If it says the editor is still opening, wait 30 seconds and call `summer_get_project_context`: the `summer-engine` tools find the project `summer dev` opened and wait for it.
In Claude Code Desktop the Browser pane shows the game: `summer dev` added `summer-preview` to `.claude/launch.json` (elsewhere: `npx -y summer-engine@4.9.0 preview --open`, then http://localhost:5199).
3. **Make it theirs, then play.** Activate the `using-summer` skill. Call `summer_get_project_context`, make one small change that matches the idea (the title, the player's colour or speed, one enemy), then verify it: `summer_play`, `summer_screenshot` with `target: "game"`, `summer_get_diagnostics`, `summer_stop`. Show what you saw; tell them to press Play in the editor.

## 4. Hand over
Expand Down
2 changes: 1 addition & 1 deletion plugins/claude/skills/3d-lighting/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,7 @@ This skill mutates the scene (adds lights + WorldEnvironment + tunes Environment
<!-- shell-commands: generated from the operation catalog by npm run generate:registry; do not edit by hand -->
## From a shell

No Summer MCP tools in this session? Run each one as a command; when `summer --version` is missing or below 4.0, use `npx -y summer-engine@4.8.0` in place of `summer`. Fields are flags in kebab-case (`--scene-path res://main.tscn`) or one `--input '<json>'`, and `summer ops describe <op>` prints the exact input. The `summer-cli` skill has the rest.
No Summer MCP tools in this session? Run each one as a command; when `summer --version` is missing or below 4.0, use `npx -y summer-engine@4.9.0` in place of `summer`. Fields are flags in kebab-case (`--scene-path res://main.tscn`) or one `--input '<json>'`, and `summer ops describe <op>` prints the exact input. The `summer-cli` skill has the rest.

| In this skill | Command |
|---|---|
Expand Down
2 changes: 1 addition & 1 deletion plugins/claude/skills/adaptive-music/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -328,7 +328,7 @@ in Summer Engine.
<!-- shell-commands: generated from the operation catalog by npm run generate:registry; do not edit by hand -->
## From a shell

No Summer MCP tools in this session? Run each one as a command; when `summer --version` is missing or below 4.0, use `npx -y summer-engine@4.8.0` in place of `summer`. Fields are flags in kebab-case (`--scene-path res://main.tscn`) or one `--input '<json>'`, and `summer ops describe <op>` prints the exact input. The `summer-cli` skill has the rest.
No Summer MCP tools in this session? Run each one as a command; when `summer --version` is missing or below 4.0, use `npx -y summer-engine@4.9.0` in place of `summer`. Fields are flags in kebab-case (`--scene-path res://main.tscn`) or one `--input '<json>'`, and `summer ops describe <op>` prints the exact input. The `summer-cli` skill has the rest.

| In this skill | Command |
|---|---|
Expand Down
2 changes: 1 addition & 1 deletion plugins/claude/skills/agent-playtesting/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,7 @@ Read `determinism.seed_scope` on the play result and believe it. Pinned: the glo
<!-- shell-commands: generated from the operation catalog by npm run generate:registry; do not edit by hand -->
## From a shell

No Summer MCP tools in this session? Run each one as a command; when `summer --version` is missing or below 4.0, use `npx -y summer-engine@4.8.0` in place of `summer`. Fields are flags in kebab-case (`--scene-path res://main.tscn`) or one `--input '<json>'`, and `summer ops describe <op>` prints the exact input. The `summer-cli` skill has the rest.
No Summer MCP tools in this session? Run each one as a command; when `summer --version` is missing or below 4.0, use `npx -y summer-engine@4.9.0` in place of `summer`. Fields are flags in kebab-case (`--scene-path res://main.tscn`) or one `--input '<json>'`, and `summer ops describe <op>` prints the exact input. The `summer-cli` skill has the rest.

| In this skill | Command |
|---|---|
Expand Down
2 changes: 1 addition & 1 deletion plugins/claude/skills/ambient-bed/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -295,7 +295,7 @@ Print the SFX prompt and the import dock settings. User runs via the Summer dash
<!-- shell-commands: generated from the operation catalog by npm run generate:registry; do not edit by hand -->
## From a shell

No Summer MCP tools in this session? Run each one as a command; when `summer --version` is missing or below 4.0, use `npx -y summer-engine@4.8.0` in place of `summer`. Fields are flags in kebab-case (`--scene-path res://main.tscn`) or one `--input '<json>'`, and `summer ops describe <op>` prints the exact input. The `summer-cli` skill has the rest.
No Summer MCP tools in this session? Run each one as a command; when `summer --version` is missing or below 4.0, use `npx -y summer-engine@4.9.0` in place of `summer`. Fields are flags in kebab-case (`--scene-path res://main.tscn`) or one `--input '<json>'`, and `summer ops describe <op>` prints the exact input. The `summer-cli` skill has the rest.

| In this skill | Command |
|---|---|
Expand Down
2 changes: 1 addition & 1 deletion plugins/claude/skills/animated-loop/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -227,7 +227,7 @@ Once the loop is wired:
<!-- shell-commands: generated from the operation catalog by npm run generate:registry; do not edit by hand -->
## From a shell

No Summer MCP tools in this session? Run each one as a command; when `summer --version` is missing or below 4.0, use `npx -y summer-engine@4.8.0` in place of `summer`. Fields are flags in kebab-case (`--scene-path res://main.tscn`) or one `--input '<json>'`, and `summer ops describe <op>` prints the exact input. The `summer-cli` skill has the rest.
No Summer MCP tools in this session? Run each one as a command; when `summer --version` is missing or below 4.0, use `npx -y summer-engine@4.9.0` in place of `summer`. Fields are flags in kebab-case (`--scene-path res://main.tscn`) or one `--input '<json>'`, and `summer ops describe <op>` prints the exact input. The `summer-cli` skill has the rest.

| In this skill | Command |
|---|---|
Expand Down
2 changes: 1 addition & 1 deletion plugins/claude/skills/animation-tree/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -303,7 +303,7 @@ the same `.tres`; it is slower but discoverable.
<!-- shell-commands: generated from the operation catalog by npm run generate:registry; do not edit by hand -->
## From a shell

No Summer MCP tools in this session? Run each one as a command; when `summer --version` is missing or below 4.0, use `npx -y summer-engine@4.8.0` in place of `summer`. Fields are flags in kebab-case (`--scene-path res://main.tscn`) or one `--input '<json>'`, and `summer ops describe <op>` prints the exact input. The `summer-cli` skill has the rest.
No Summer MCP tools in this session? Run each one as a command; when `summer --version` is missing or below 4.0, use `npx -y summer-engine@4.9.0` in place of `summer`. Fields are flags in kebab-case (`--scene-path res://main.tscn`) or one `--input '<json>'`, and `summer ops describe <op>` prints the exact input. The `summer-cli` skill has the rest.

| In this skill | Command |
|---|---|
Expand Down
Loading
Loading