Skip to main content
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:
Swap 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

If 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:
If you don’t know which scripts changed, use 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_console instead of summer_get_debugger_errors for 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 in project.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; when summer --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.
  • 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.