> ## Documentation Index
> Fetch the complete documentation index at: https://docs.summerengine.com/llms.txt
> Use this file to discover all available pages before exploring further.

# New project skill for AI agents

> Create a blank Summer Engine project: ask for the project name and run summer create empty. A Summer Engine skill for AI agents.

`new-project` is a skill from the [Summer skill library](/mcp/skills): 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.

| | |
| - | - |
| Status | Stable |
| Domains | Scenes and project, Project |
| Version | `1.0.4` |
| Engine version | `>=4.6` |
| Recommended set | Yes, installed by `--recommended` |

## 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:

```bash theme={null}
npx -y summer-engine@latest skills install new-project --agent claude-code
```

Swap `claude-code` for your agent, such as `codex` or `cursor`. See [Skills](/mcp/skills#quick-start) 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

```
summer create empty my-game
```

or

```
summer create 3d-basic my-game
```

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

### 4. Open it

```
summer run my-game
```

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

| Don't | Why |
| - | - |
| Skip the name question and use `my-game` silently | The user has opinions about the directory name. Two seconds of asking saves a `mv` later. |
| Use `summer create 3d-basic` for a 2D game | Wrong starting scene. Use `empty` and let the user/agent build the 2D root from there. |
| Default to a community template | That's `browse-templates`. This skill is specifically for "blank canvas." |
| Continue into `fps-controller` automatically | Most users want to brainstorm or set art direction first. Stop and ask. |
| Run this when the user is in an existing project | Check `summer status` or `summer_get_project_context` first. If a project is already open, the user probably wanted to modify it, not create a new one. |

## 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.

| In this skill | Command |
| - | - |
| `summer_get_project_context` | `summer engine get-project-context` |
| `summer_replace_node` | `summer engine replace-node` |

## Related skills

* [`make-game`](/skills/make-game): Orchestrate 'make me a game': brainstorm, plan, scaffold, mechanics, art, audio, polish, verify, ship.

***

Source: [`library/skills/new-project/SKILL.md`](https://github.com/SummerEngine/summer/blob/main/library/skills/new-project/SKILL.md), rendered from `summer-engine@4.3.0` on npm.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.