Skip to main content
new-project 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. Create a blank Summer Engine project: ask for the project name and run summer create empty.

When your agent uses it

  • The user wants a fresh blank Summer Engine project — from scratch, blank canvas
  • Starting a Summer Engine project with no template, only a name, ready for an empty main scene

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

Use this when the user wants a blank project instead of a template.

When to use this skill

  • “Let’s start a new project.”
  • “I want to make a [game type] from scratch.”
  • “Blank project.”
  • “Empty project.”
  • “I don’t want a template, just a blank starting point.”

When NOT to use this skill

  • “Show me templates” / “use a template” → browse-templates.
  • “Make me a game” with a defined idea → run brainstorm-game first to scope, then come back here once the user knows what they want.
  • “I have an existing Godot project I want to import” → not this skill; have the user run summer open <path> directly.

Steps

1. Ask the project name

One question, no menu:
“What do you want to call your project?”
Default: my-game. If they say “anything is fine” or similar, use my-game and move on. The directory name is reversible — they can always rename.

2. Pick the starting scene

Two built-in options:
  • empty — root Node3D only. Pure blank canvas. Best for: experimentation, when the user knows exactly what they want to build.
  • 3d-basic — root Node3D with Camera3D, DirectionalLight3D, a floor MeshInstance3D, and a WorldEnvironment. Best for: first-time users who want something they can press Play on.
If you’re not sure which fits, ask:
“Empty (just a root node) or 3d-basic (camera, light, and a floor — you can press play immediately)?”
If the user has clearly invoked brainstorm-game already and the brief calls for 3D, default to 3d-basic and mention you did. If 2D, use empty (we don’t ship a 2D-basic yet).

3. Create

or
The command writes project.godot and the chosen main.tscn. It makes no network call.

4. Open it

Confirm the engine launched and the project loaded. If summer run fails, run summer doctor and surface the failure to the user.

5. Don’t keep going automatically

After scaffolding, stop and let the user direct. A common mistake: fire fps-controller or design-mechanic automatically because “now we make a game.” Wait. The user might want to:
  • Brainstorm what to build (brainstorm-game)
  • Set the visual direction (art-direction)
  • Jump straight into a known mechanic (design-mechanic)
  • Build a specific controller (fps-controller)
Ask: “Project is open. What do you want to build?”

Anti-patterns

Edge cases

  • Engine not running → that’s fine. summer create doesn’t need the engine. After scaffolding, summer run <name> will start it.
  • User wants 2D but empty is the only 2D-friendly built-in → use empty, then set up a 2D scene root via summer_replace_node (Node3D → Node2D). Mention this — don’t surprise the user.
  • Directory exists → the CLI errors out. Ask for a different name; don’t try to overwrite.

Closing

End with: “Project <name> is created and open. What do you want to build first?”

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.
  • make-game: Orchestrate ‘make me a game’: brainstorm, plan, scaffold, mechanics, art, audio, polish, verify, ship.

Source: library/skills/new-project/SKILL.md, rendered from summer-engine@4.3.0 on npm.