play is a skill from the Summer skill library: a guide your AI agent reads when the task matches, so it builds the good version on the first try. Run the project in Summer Engine, wait briefly, then report a clean run, errors or warnings.
When your agent uses it
- The user says ‘play’, ‘run it’, ‘test it’, ‘let me see it’, or ‘start the game’
- Checking that the project still starts and runs cleanly right after a change
Install
summer setup installs every skill for your agent. To add only this one:
claude-code for your agent, such as codex or cursor. See Skills for every option.
The skill
Overview
Press play. Watch what happens. Report it back.Steps
1. Check if it’s already running
The game is already playing. Stop and restart, or leave it?Wait for the user. Don’t unilaterally stop. If not running, continue.
2. Pre-check for compile errors
Cheapest call. If the script won’t compile, play will fail with a noisy error — better to surface that clearly first.summer_get_script_errors checks one file and path is required — there is
no project-wide form. Call it on the scripts you just touched:
summer_get_diagnostics instead —
it takes no arguments and reports editor + runtime counts across the project.
If errors found:
Won’t run yet — there’s a script error: <one-line summary>. Want me to /debug it?
Stop here on user’s no.
3. Clear and play
4. Brief wait, then read state
Wait ~2 seconds (so the engine has time to process at least one frame). Then:5. Report
Three outcomes: Clean:summer_get_diagnostics shows zero errors and zero warnings.
Running. No errors or warnings. Tell me what you see and I’ll dig in if needed.Warnings only:
Running. <N> warnings — <one-line summary of the most important one>. Want me to look at them?
Runtime error:
Crashed:<error class>at<file>:<line>—<message>. Want me to /debug?
6. Don’t auto-stop
Leave the game running. The user wants to play it. Stop only on explicit ask.Common patterns
Anti-patterns
- Don’t auto-stop a running game just because the user said “play”. They probably mean “make sure it’s playing”, not “stop and restart”.
- Don’t call
summer_get_consoleinstead ofsummer_get_debugger_errorsfor runtime errors. Console has print() output and warnings; debugger errors has the stack traces. - Don’t report “no errors” before waiting for the engine to actually run a frame. A 0-frame snapshot is meaningless.
Collaborative protocol
This skill mutates engine state (clearing console, starting play). It’s a read-side workflow with one safe write (summer_play). No “May I” needed — this is what the user asked for. Do confirm before stopping a running game.
Requirements
Any Summer project with a main scene set inproject.godot.
See also
debug— what to do when /play surfaces an error
From a shell
No Summer MCP tools in this session? Run each one as a command; whensummer --version is missing or below 4.0, use npx -y summer-engine@latest 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.
Related skills
debug: Disciplined bug, crash and error loop: script errors, console, debugger, hypothesis, fix, verify.
Source:
library/skills/play/SKILL.md, rendered from summer-engine@4.3.0 on npm.
