summer-engine 1.4.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/plugin.json +18 -10
- package/.codex-plugin/plugin.json +36 -8
- package/.cursor-plugin/plugin.json +19 -11
- package/.opencode/INSTALL.md +69 -0
- package/.opencode/plugins/summer.js +9 -4
- package/CHANGELOG.md +31 -1
- package/README.md +268 -86
- package/dist/bin/summer.js +0 -0
- package/dist/commands/assets.d.ts +2 -0
- package/dist/commands/assets.js +189 -0
- package/dist/commands/create.js +55 -17
- package/dist/commands/debug.d.ts +2 -0
- package/dist/commands/debug.js +127 -0
- package/dist/commands/list.js +24 -5
- package/dist/commands/project.d.ts +2 -0
- package/dist/commands/project.js +170 -0
- package/dist/commands/scene.d.ts +2 -0
- package/dist/commands/scene.js +290 -0
- package/dist/lib/banner.js +2 -2
- package/dist/lib/log-filters.d.ts +53 -0
- package/dist/lib/log-filters.js +130 -0
- package/dist/lib/plugin-manifests.test.d.ts +1 -0
- package/dist/lib/plugin-manifests.test.js +134 -0
- package/dist/lib/remote-templates.d.ts +25 -0
- package/dist/lib/remote-templates.js +86 -0
- package/dist/lib/skills-registry.d.ts +33 -1
- package/dist/lib/skills-registry.js +56 -1
- package/dist/lib/telemetry.d.ts +13 -0
- package/dist/lib/telemetry.js +63 -0
- package/dist/lib/with-engine.d.ts +14 -0
- package/dist/lib/with-engine.js +109 -0
- package/dist/mcp/tools/asset-tools.js +12 -13
- package/dist/mcp/tools/debug-tools.js +32 -9
- package/dist/mcp/tools/with-engine.js +4 -0
- package/gemini-extension.json +2 -2
- package/hooks/pre-commit-doctor.sh +0 -0
- package/hooks/run-hook.cmd +0 -0
- package/hooks/session-start.sh +0 -0
- package/marketplace.json +2 -2
- package/package.json +3 -3
- package/skills/README.md +1 -1
- package/skills/_meta/skill-create/SKILL.md +1 -1
- package/skills/_meta/skill-improve/SKILL.md +1 -1
- package/skills/_meta/skill-test/SKILL.md +1 -1
- package/skills/_meta/using-summer/SKILL.md +130 -0
- package/skills/_tests/specs/design-npc.md +43 -12
- package/skills/_tests/specs/fps-controller.md +33 -20
- package/skills/_tests/specs/host-authoritative-state.md +104 -0
- package/skills/_tests/specs/vfx.md +56 -38
- package/skills/ai-and-npcs/design-npc/SKILL.md +264 -122
- package/skills/asset-pipeline/asset-strategy/SKILL.md +1 -1
- package/skills/catalog.yaml +21 -4
- package/skills/character-controllers/fps-controller/SKILL.md +260 -79
- package/skills/debugging/debug/SKILL.md +102 -82
- package/skills/multiplayer-and-networking/host-authoritative-state/SKILL.md +332 -0
- package/skills/rendering-and-lighting/3d-lighting/SKILL.md +1 -1
- package/skills/scene-and-project/browse-templates/SKILL.md +105 -0
- package/skills/scene-and-project/make-game/SKILL.md +159 -346
- package/skills/scene-and-project/new-project/SKILL.md +106 -0
- package/skills/scene-and-project/scene-composition/SKILL.md +1 -1
- package/skills/scripting-patterns/gdscript-patterns/SKILL.md +1 -1
- package/skills/ui-and-ux/ui-basics/SKILL.md +1 -1
- package/skills/visual-effects/vfx/SKILL.md +233 -134
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: browse-templates
|
|
3
|
+
description: Use when the user wants to see available Summer Engine project templates, start from an existing template, or asks "what templates exist?" — fetches the live list from github.com/SummerEngine, presents the choices, and creates a project from the chosen template via `summer create <slug> <project-name>`. Trigger on "templates", "starter", "boilerplate", "from a template", "what's available", "show me templates", "third-person", "platformer", "multiplayer starter".
|
|
4
|
+
license: MIT
|
|
5
|
+
compatibility: [Cursor, Claude Code, Codex, Windsurf, Gemini, OpenCode]
|
|
6
|
+
category: scene-and-project
|
|
7
|
+
user-invocable: true
|
|
8
|
+
allowed-tools: Bash Read summer_get_project_context
|
|
9
|
+
paths: ["**/project.godot"]
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# /browse-templates — Pick a community template and clone it
|
|
13
|
+
|
|
14
|
+
Summer's community templates live in [github.com/SummerEngine](https://github.com/orgs/SummerEngine/repositories) under `template-*` repos: `template-3d-third-person-controller`, `template-3d-lan-multiplayer-starter`, `template-2d-platformer`, and so on. They're working starter projects — open in Summer Engine and play immediately.
|
|
15
|
+
|
|
16
|
+
## When to use this skill
|
|
17
|
+
|
|
18
|
+
- User asks "what templates do you have?" / "what starter projects exist?"
|
|
19
|
+
- User says "start from a template" / "use the X template" / "is there a Y starter?"
|
|
20
|
+
- User describes a game shape that maps to a known template (third-person 3D, multiplayer, 2D platformer)
|
|
21
|
+
- User asks for a specific known template by name
|
|
22
|
+
|
|
23
|
+
## When NOT to use this skill
|
|
24
|
+
|
|
25
|
+
- User says "blank project" / "empty project" / "from scratch" → use `summer:new-project`.
|
|
26
|
+
- User wants to *make* a new template (contribute one) → that's not this skill; point them at the README's contributing section.
|
|
27
|
+
|
|
28
|
+
## Steps
|
|
29
|
+
|
|
30
|
+
### 1. Fetch the live list
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
summer list templates
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
That hits the GitHub org API and prints both built-in templates (offline-friendly) and community templates with descriptions. **Always run this first — never recommend a template from memory.** The list evolves; what you remember may be stale, archived, or renamed.
|
|
37
|
+
|
|
38
|
+
If the command errors out (rate-limit, offline), tell the user and offer the built-ins (`empty`, `3d-basic`) plus the canonical URL: [github.com/SummerEngine](https://github.com/orgs/SummerEngine/repositories).
|
|
39
|
+
|
|
40
|
+
### 2. Help the user pick
|
|
41
|
+
|
|
42
|
+
If the user has a specific game shape in mind, narrow before showing all options:
|
|
43
|
+
|
|
44
|
+
> "Looking for a third-person 3D template — `3d-third-person-controller` looks right. Want me to clone it as `my-game`?"
|
|
45
|
+
|
|
46
|
+
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.
|
|
47
|
+
|
|
48
|
+
### 3. Confirm the project name
|
|
49
|
+
|
|
50
|
+
Default is the template slug (so `3d-third-person-controller` → directory `3d-third-person-controller`). Almost always wrong. **Always ask:**
|
|
51
|
+
|
|
52
|
+
> "What do you want to call your project? (default: `3d-third-person-controller`)"
|
|
53
|
+
|
|
54
|
+
### 4. Clone
|
|
55
|
+
|
|
56
|
+
```
|
|
57
|
+
summer create <template-slug> <project-name>
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Example:
|
|
61
|
+
|
|
62
|
+
```
|
|
63
|
+
summer create 3d-third-person-controller hero-game
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
This:
|
|
67
|
+
- Clones the latest `main` (or default branch) of `template-3d-third-person-controller`
|
|
68
|
+
- Drops the `.git` directory so the user starts with their own history
|
|
69
|
+
- Prints the source URL for transparency
|
|
70
|
+
|
|
71
|
+
Pass `--keep-git` if the user wants the upstream history (rare).
|
|
72
|
+
|
|
73
|
+
### 5. Open it in the engine
|
|
74
|
+
|
|
75
|
+
```
|
|
76
|
+
summer run <project-name>
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
Confirm it opens. Then invoke `summer:play` to verify the template runs as expected before doing any custom work on top.
|
|
80
|
+
|
|
81
|
+
## Anti-patterns
|
|
82
|
+
|
|
83
|
+
| Don't | Why |
|
|
84
|
+
|---|---|
|
|
85
|
+
| Recommend a template from memory | List evolves. `summer list templates` is the source of truth. |
|
|
86
|
+
| Dump the full template list as a wall of text | 5 curated picks beats 20 generic ones. Match to user intent. |
|
|
87
|
+
| Default the project name to the slug | `3d-third-person-controller/` is a UX-hostile directory name. Always ask. |
|
|
88
|
+
| Skip `summer run` after cloning | Templates can break upstream — verify the user has a working baseline before they edit. |
|
|
89
|
+
| Clone into an existing directory | The CLI errors out; respect that and ask for a different name. |
|
|
90
|
+
|
|
91
|
+
## Edge cases
|
|
92
|
+
|
|
93
|
+
- **`git` not installed** → `summer create` errors with a clear message. Tell the user to install git, or fall back to a built-in template.
|
|
94
|
+
- **Template archived or moved** → the API filter excludes archived repos. If a user names one explicitly that's gone, the create command lists what's currently available.
|
|
95
|
+
- **Network down** → fall back to `empty` or `3d-basic`. Don't pretend the remote ones exist.
|
|
96
|
+
|
|
97
|
+
## After the user is in
|
|
98
|
+
|
|
99
|
+
Once the project is created and running, hand off cleanly. The next skill that fires depends on the template:
|
|
100
|
+
|
|
101
|
+
- Third-person controller → likely `summer:scene-composition` or `summer:gdscript-patterns` next.
|
|
102
|
+
- Multiplayer starter → `summer:setup-multiplayer` or `summer:host-authoritative-state`.
|
|
103
|
+
- 2D platformer → `summer:design-mechanic` for the platforming feel, then `summer:design-level`.
|
|
104
|
+
|
|
105
|
+
Don't auto-fire the next skill — wait for the user to say what they want to change first.
|