browse-templates 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. List Summer Engine project templates, present the choices, and create a project from the chosen one.
When your agent uses it
- The user wants to see available Summer Engine project templates, start from an existing template, or asks what templates exist
- Picking a starting point and unsure which starter templates already exist
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
Summer’s templates are the pin manifests inlibrary/templates/<slug>/resource.yaml, compiled into registry/generated/templates-registry.json: 3d-third-person-controller, 2d-platformer, and so on. Each pinned template names a repo, an exact commit, and a tree digest; the two built-ins (empty, 3d-basic) are generated locally. They’re working starter projects — open in Summer Engine and play immediately.
When to use this skill
- User asks “what templates do you have?” / “what starter projects exist?”
- User says “start from a template” / “use the X template” / “is there a Y starter?”
- User describes a game shape that maps to a known template (third-person 3D, multiplayer, 2D platformer)
- User asks for a specific known template by name
When NOT to use this skill
- User says “blank project” / “empty project” / “from scratch” → use
new-project. - User wants to make a new template (contribute one) → that’s not this skill; point them at the README’s contributing section.
Steps
1. Fetch the live list
empty, 3d-basic), which need no network.
2. Help the user pick
If the user has a specific game shape in mind, narrow before showing all options:“Looking for a third-person 3D template —If they’re undecided, show 3–5 options grouped by genre, with a one-line description each. Don’t dump the full list. A long menu freezes decisions.3d-third-person-controllerlooks right. Want me to create it asmy-game?”
3. Confirm the project name
Default is the template slug (so3d-third-person-controller → directory 3d-third-person-controller). Almost always wrong. Always ask:
“What do you want to call your project? (default: 3d-third-person-controller)“
4. Create
- Fetches the exact commit pinned in the registry entry — never a default branch — and refuses if the tree digest does not match
- Drops the
.gitdirectory so the user starts with their own history - Records the template pin into the project’s
.summer/project.jsonand prints the source for transparency
--keep-git if the user wants the upstream history (rare).
5. Open it in the engine
play to verify the template runs as expected before doing any custom work on top.
Anti-patterns
Edge cases
gitnot installed →summer createerrors with a clear message. Tell the user to install git, or fall back to a built-in template.- Template retired or renamed → it leaves the registry (renames leave an alias). If a user names one explicitly that’s gone, the create command lists what’s currently available.
- Network down → pinned templates cannot be fetched; fall back to
emptyor3d-basic, which are generated locally.
After the user is in
Once the project is created and running, hand off cleanly. The next skill that fires depends on the template:- Third-person controller → likely
scene-compositionorgdscript-patternsnext. - Multiplayer starter →
multiplayer(it routes tomultiplayer-project). - 2D platformer →
design-mechanicfor the platforming feel, thendesign-level.
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.
Source:
library/skills/browse-templates/SKILL.md, rendered from summer-engine@4.3.0 on npm.
