summer-engine 2.7.0 → 2.8.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 +2 -1
- package/.codex-plugin/plugin.json +3 -2
- package/.cursor-plugin/plugin.json +2 -1
- package/.opencode/INSTALL.md +1 -1
- package/.opencode/plugins/summer.js +1 -1
- package/AGENTS.md +4 -4
- package/CHANGELOG.md +10 -0
- package/GEMINI.md +5 -4
- package/README.md +58 -19
- package/assets/autopilot/README.md +51 -0
- package/assets/autopilot/autopilot.gd +222 -0
- package/assets/autopilot/probe_base.gd +262 -0
- package/assets/autopilot/run.sh +78 -0
- package/commands/gameskill.md +11 -2
- package/dist/bin/summer.js +8 -0
- package/dist/commands/config.d.ts +2 -0
- package/dist/commands/config.js +53 -0
- package/dist/commands/create.d.ts +1 -0
- package/dist/commands/create.js +38 -6
- package/dist/commands/list.js +1 -1
- package/dist/commands/login.d.ts +19 -0
- package/dist/commands/login.js +123 -36
- package/dist/commands/logout.js +3 -16
- package/dist/commands/logs.d.ts +2 -0
- package/dist/commands/logs.js +19 -0
- package/dist/commands/mcp.js +7 -2
- package/dist/commands/open.js +1 -1
- package/dist/commands/publish.d.ts +2 -0
- package/dist/commands/publish.js +20 -0
- package/dist/commands/releases.d.ts +2 -0
- package/dist/commands/releases.js +20 -0
- package/dist/commands/run.js +1 -1
- package/dist/lib/api-client.d.ts +4 -2
- package/dist/lib/api-client.js +28 -4
- package/dist/lib/auth.d.ts +40 -12
- package/dist/lib/auth.js +173 -37
- package/dist/lib/cloud/engine-bridge.d.ts +17 -4
- package/dist/lib/cloud/engine-bridge.js +32 -6
- package/dist/lib/config.d.ts +20 -0
- package/dist/lib/config.js +142 -0
- package/dist/lib/creator.d.ts +93 -0
- package/dist/lib/creator.js +393 -0
- package/dist/lib/engine.d.ts +35 -2
- package/dist/lib/engine.js +240 -6
- package/dist/lib/public-surface-paths.d.ts +13 -0
- package/dist/lib/public-surface-paths.js +42 -0
- package/dist/lib/skills-registry.d.ts +8 -0
- package/dist/lib/skills-registry.js +9 -0
- package/dist/lib/store.d.ts +14 -0
- package/dist/lib/store.js +145 -0
- package/dist/lib/summer-compatibility.d.ts +6 -0
- package/dist/lib/summer-compatibility.js +22 -0
- package/dist/mcp/server.d.ts +8 -1
- package/dist/mcp/server.js +25 -4
- package/dist/mcp/tools/creator-tools.d.ts +2 -0
- package/dist/mcp/tools/creator-tools.js +105 -0
- package/dist/mcp/tools/generate-tools.js +16 -6
- package/dist/mcp/tools/project-tools.js +12 -7
- package/dist/mcp/tools/scene-tools.js +6 -6
- package/dist/mcp/tools/visual-tools.js +4 -3
- package/hooks/pre-commit-doctor.sh +0 -0
- package/hooks/run-hook.cmd +0 -0
- package/hooks/session-start.sh +5 -5
- package/package.json +3 -1
- package/references/collaborative-protocol.md +50 -0
- package/references/gd-style.md +121 -0
- package/references/godot-version.md +51 -0
- package/references/mcp-tools-reference.md +199 -0
- package/references/public-surface-language.md +30 -0
- package/references/summer-folder.md +90 -0
- package/references/template-registry.md +73 -0
- package/skills/2d-assets/character-portrait/SKILL.md +17 -12
- package/skills/2d-assets/concept-art/SKILL.md +10 -9
- package/skills/2d-assets/pixel-art/SKILL.md +36 -20
- package/skills/2d-assets/skybox-panorama/SKILL.md +32 -37
- package/skills/2d-assets/sprite-sheet/SKILL.md +40 -35
- package/skills/2d-assets/tileable-texture/SKILL.md +28 -22
- package/skills/2d-assets/ui-graphics/SKILL.md +46 -32
- package/skills/2d-assets/use-widget-asset/SKILL.md +8 -6
- package/skills/3d-assets/character-model/SKILL.md +34 -19
- package/skills/3d-assets/environment-kit/SKILL.md +11 -5
- package/skills/3d-assets/organic-model/SKILL.md +8 -5
- package/skills/3d-assets/prop-model/SKILL.md +9 -3
- package/skills/3d-assets/vehicle-model/SKILL.md +32 -19
- package/skills/README.md +1 -1
- package/skills/ai-and-npcs/design-npc/SKILL.md +31 -13
- package/skills/animation/animation-tree/SKILL.md +39 -15
- package/skills/animation/facial-and-lipsync/SKILL.md +25 -8
- package/skills/animation/generate-motion/SKILL.md +47 -15
- package/skills/animation/procedural-animation/SKILL.md +31 -13
- package/skills/animation/retarget/SKILL.md +127 -79
- package/skills/audio/adaptive-music/SKILL.md +24 -20
- package/skills/audio/ambient-bed/SKILL.md +22 -16
- package/skills/audio/audio-direction/SKILL.md +15 -10
- package/skills/audio/music-track/SKILL.md +18 -12
- package/skills/audio/sound-effect/SKILL.md +17 -12
- package/skills/audio/voice-line/SKILL.md +42 -42
- package/skills/character-controllers/fps-controller/SKILL.md +26 -16
- package/skills/debugging/debug/SKILL.md +52 -20
- package/skills/deployment/export-and-ship/SKILL.md +105 -38
- package/skills/deployment/remote-deploy/SKILL.md +56 -23
- package/skills/gameplay-mechanics/auto-fire-targeting/SKILL.md +26 -1
- package/skills/gameplay-mechanics/design-mechanic/SKILL.md +23 -15
- package/skills/level-design/design-level/SKILL.md +22 -8
- package/skills/level-design/scene-to-level/SKILL.md +13 -7
- package/skills/multiplayer-and-networking/host-authoritative-state/SKILL.md +8 -8
- package/skills/multiplayer-and-networking/peer-to-peer-multiplayer/SKILL.md +2 -7
- package/skills/multiplayer-and-networking/setup-multiplayer/SKILL.md +26 -18
- package/skills/performance/tune-performance/SKILL.md +51 -32
- package/skills/rendering-and-lighting/3d-lighting/SKILL.md +34 -5
- package/skills/rendering-and-lighting/art-direction/SKILL.md +6 -8
- package/skills/scene-and-project/brainstorm-game/SKILL.md +3 -5
- package/skills/scene-and-project/make-game/SKILL.md +2 -1
- package/skills/scene-and-project/play/SKILL.md +10 -4
- package/skills/scene-and-project/scene-composition/SKILL.md +21 -8
- package/skills/scene-and-project/summer-cloud/SKILL.md +1 -1
- package/skills/ui-and-ux/ui-basics/SKILL.md +16 -7
- package/skills/video/animated-loop/SKILL.md +63 -39
- package/skills/video/cinematic-cutscene/SKILL.md +66 -30
- package/skills/video/trailer-shot/SKILL.md +30 -21
- package/skills/visual-effects/_building-blocks/additive-billboard-particles.md +25 -16
- package/skills/visual-effects/_building-blocks/trauma-shake-snippet.md +5 -3
- package/skills/visual-effects/game-feel/SKILL.md +51 -33
- package/skills/visual-effects/recipes/dissolve/SKILL.md +51 -9
- package/skills/visual-effects/recipes/fire/SKILL.md +136 -49
- package/skills/visual-effects/recipes/hit-spark/SKILL.md +45 -8
- package/skills/visual-effects/recipes/lightning/SKILL.md +59 -27
- package/skills/visual-effects/recipes/magic-glow/SKILL.md +59 -26
- package/skills/visual-effects/recipes/muzzle-flash/SKILL.md +68 -25
- package/skills/visual-effects/recipes/smoke/SKILL.md +89 -28
- package/skills/visual-effects/recipes/water-ripple/SKILL.md +83 -23
- package/skills/workflow/brainstorming/SKILL.md +1 -1
- package/skills/workflow/brainstorming/scripts/start-server.sh +0 -0
- package/skills/workflow/brainstorming/scripts/stop-server.sh +0 -0
- package/skills/workflow/debugging-game-feel/SKILL.md +29 -9
- package/skills/workflow/diagnosing-perf-regressions/SKILL.md +46 -21
- package/skills/workflow/gameskill/SKILL.md +11 -2
- package/skills/workflow/headless-scripting/SKILL.md +407 -0
- package/skills/workflow/investigating-bugs/SKILL.md +4 -2
- package/skills/workflow/investigating-bugs/find-polluter.sh +0 -0
- package/skills/workflow/mcpupdate/SKILL.md +3 -3
- package/skills/workflow/playtesting-a-feature/SKILL.md +94 -21
- package/skills/workflow/skill-create/SKILL.md +7 -7
- package/skills/workflow/skill-test/SKILL.md +3 -3
- package/skills/workflow/using-summer/SKILL.md +12 -2
- package/skills/workflow/verification-before-completion/SKILL.md +2 -0
- package/skills/workflow/writing-plans/SKILL.md +7 -7
- package/skills/workflow/writing-skills/SKILL.md +7 -5
- package/skills/workflow/writing-skills/render-graphs.js +0 -0
- package/skills/workflow/writing-skills/testing-skills-with-subagents.md +1 -1
|
@@ -15,9 +15,9 @@ allowed-tools: Read Write Glob Grep
|
|
|
15
15
|
|
|
16
16
|
Ask the user:
|
|
17
17
|
- **Name** (kebab-case, ≤ 64 chars). Example: `state-machine-patterns`.
|
|
18
|
-
- **Category** (one of the
|
|
18
|
+
- **Category** (must be one of the values in the `SKILL_CATEGORIES` array at `src/lib/skills-registry.ts` — read it, do not guess). Example: `scripting-patterns`.
|
|
19
19
|
- **One-sentence description** for the frontmatter.
|
|
20
|
-
- **Template-id** (optional). Lookup against
|
|
20
|
+
- **Template-id** (optional). Lookup against `../../../references/template-registry.md`.
|
|
21
21
|
|
|
22
22
|
### 2. Create the folder
|
|
23
23
|
|
|
@@ -80,13 +80,13 @@ May I <action>?
|
|
|
80
80
|
|
|
81
81
|
→ **template-id**: `<template-id>`
|
|
82
82
|
→ **Repo**: <github URL from references/template-registry.md>
|
|
83
|
-
→ **Bootstrap**: `summer
|
|
83
|
+
→ **Bootstrap**: `summer create <template-id> my-game` (see `summer list templates` for the slugs)
|
|
84
84
|
|
|
85
85
|
## See also
|
|
86
86
|
|
|
87
|
-
-
|
|
88
|
-
-
|
|
89
|
-
-
|
|
87
|
+
- `../../../references/godot-version.md`
|
|
88
|
+
- `../../../references/mcp-tools-reference.md`
|
|
89
|
+
- `../../../references/gd-style.md`
|
|
90
90
|
- (other relevant skills)
|
|
91
91
|
```
|
|
92
92
|
|
|
@@ -149,5 +149,5 @@ This skill writes files (the new skill folder + plugin manifest update + TS regi
|
|
|
149
149
|
|
|
150
150
|
## See also
|
|
151
151
|
|
|
152
|
-
-
|
|
152
|
+
- `../../../references/collaborative-protocol.md`
|
|
153
153
|
- `workflow/skill-test/SKILL.md`
|
|
@@ -21,7 +21,7 @@ For a single skill at `skills/<category>/<name>/`, run these checks:
|
|
|
21
21
|
- At least one `summer_*` MCP tool example.
|
|
22
22
|
- At least one file-edit fallback block (e.g., raw `.tscn` snippet) OR an explicit "no fallback for this — Summer MCP required" note.
|
|
23
23
|
4. **Collaborative protocol.** If the skill triggers user-visible writes, body must contain at least one of: `May I`, `I'm about to`, `Continue?`, `OK?`, `Proceed?`. Skills that only inspect/read are exempt.
|
|
24
|
-
5. **Template-id resolved.** If the skill's frontmatter declares `template-id: <id>`, that id must exist in
|
|
24
|
+
5. **Template-id resolved.** If the skill's frontmatter declares `template-id: <id>`, that id must exist in `../../../references/template-registry.md`.
|
|
25
25
|
6. **Tests/spec.md present.** Every skill in a non-`_meta` category must have `tests/spec.md` with at least one `## Case` heading.
|
|
26
26
|
7. **Relative links resolve.** Every `](../references/...)`, `](../../references/...)`, `](./references/...)`, and `](./examples/...)` link must point at an existing file (FAIL if broken). Forward references in `## See also` to other SKILL.md files (e.g., `[design-mechanic](../../gameplay-mechanics/design-mechanic/SKILL.md)`) are allowed to dangle and only WARN if the target is missing — the catalog evolves and skills should be free to point at planned skills.
|
|
27
27
|
|
|
@@ -80,7 +80,7 @@ This skill is **read-only**. It never writes. No "May I" needed.
|
|
|
80
80
|
|
|
81
81
|
## See also
|
|
82
82
|
|
|
83
|
-
-
|
|
84
|
-
-
|
|
83
|
+
- `../../../references/collaborative-protocol.md`
|
|
84
|
+
- `../../../references/template-registry.md`
|
|
85
85
|
- `tests/runner.md`
|
|
86
86
|
- `tests/specs/` — per-skill behavioral specs
|
|
@@ -38,10 +38,20 @@ Two layers:
|
|
|
38
38
|
- **Skills** — discipline guides that fire on specific situations: brainstorming a game, designing a mechanic, building an FPS controller, debugging a crash, shipping a build. Each one is a SKILL.md you load via the Skill tool.
|
|
39
39
|
- **MCP tools** — `summer_*` tools that talk to the running Summer Engine on `localhost:6550`. Scene mutation (`summer_add_node`, `summer_set_prop`), inspection (`summer_get_scene_tree`, `summer_inspect_node`), play/diagnostics (`summer_play`, `summer_get_diagnostics`), asset import/generation (`summer_import_from_url`, `summer_generate_3d`), whole-project sync to Summer Cloud (`summer_cloud_push`, `summer_cloud_pull`; see `summer:summer-cloud`), and 30+ more.
|
|
40
40
|
|
|
41
|
-
**Scripting language:**
|
|
41
|
+
**Scripting language:** The user is making a Summer game with the Summer SDK.
|
|
42
|
+
GDScript is the default creator language. Summer currently uses the 4.6.1
|
|
43
|
+
upstream technical base, plans to adopt 4.7.1 next, and follows upstream
|
|
44
|
+
continuously. Confirm version-sensitive behavior from the engine's own version
|
|
45
|
+
string rather than turning that base into the product identity. You can write
|
|
46
|
+
game code in either:
|
|
42
47
|
|
|
43
48
|
- **GDScript** (`.gd`) — the default. Best supported by Summer skills (see `summer:gdscript-patterns`). Use this unless the user has explicitly chosen C#.
|
|
44
|
-
- **C#** (`.cs`) —
|
|
49
|
+
- **C#** (`.cs`) — supported by the shipped Mono build. There is no
|
|
50
|
+
`summer:csharp-patterns` skill yet. When writing C#, use the upstream C# API
|
|
51
|
+
reference matching the current Summer technical base. The lifecycle, signal
|
|
52
|
+
API, and export attributes differ, so do not blindly translate GDScript
|
|
53
|
+
idioms. Confirm that the user wants C# before producing it; switching
|
|
54
|
+
languages mid-project is painful.
|
|
45
55
|
|
|
46
56
|
Scenes are always `.tscn`/`.scn`. Resources are always `.tres`/`.res`. Drive the engine through `summer_*` tools — do not hand-edit `.tscn` files; the editor holds in-memory state that diverges from disk.
|
|
47
57
|
|
|
@@ -45,6 +45,7 @@ Skip any step = lying, not verifying
|
|
|
45
45
|
| Linter clean | Linter output: 0 errors | Partial check, extrapolation |
|
|
46
46
|
| Build succeeds | Build command: exit 0 | Linter passing, logs look good |
|
|
47
47
|
| Bug fixed | Test original symptom: passes | Code changed, assumed fixed |
|
|
48
|
+
| Gameplay behaviour works | `RunVerification` probe: pressed the input, read the state back | Script compiles, game boots, diagnostics clean |
|
|
48
49
|
| Regression test works | Red-green cycle verified | Test passes once |
|
|
49
50
|
| Agent completed | VCS diff shows changes | Agent reports "success" |
|
|
50
51
|
| Requirements met | Line-by-line checklist | Tests passing |
|
|
@@ -72,6 +73,7 @@ Skip any step = lying, not verifying
|
|
|
72
73
|
| "I'm tired" | Exhaustion ≠ excuse |
|
|
73
74
|
| "Partial check is enough" | Partial proves nothing |
|
|
74
75
|
| "Different words so rule doesn't apply" | Spirit over letter |
|
|
76
|
+
| "There's no way to test gameplay, I'll ask the user" | There is. A `RunVerification` probe presses input and reads state back. Ask the user only for what a probe cannot judge. |
|
|
75
77
|
|
|
76
78
|
## Key Patterns
|
|
77
79
|
|
|
@@ -13,7 +13,7 @@ Assume they are a skilled developer, but know almost nothing about our toolset o
|
|
|
13
13
|
|
|
14
14
|
**Announce at start:** "I'm using the writing-plans skill to create the implementation plan."
|
|
15
15
|
|
|
16
|
-
**Context:** If
|
|
16
|
+
**Context:** If the work needs isolation from the current checkout, create a git worktree for it before execution starts.
|
|
17
17
|
|
|
18
18
|
**Save plans to:** `docs/superpowers/plans/YYYY-MM-DD-<feature-name>.md`
|
|
19
19
|
- (User preferences for plan location override this default)
|
|
@@ -49,7 +49,7 @@ This structure informs the task decomposition. Each task should produce self-con
|
|
|
49
49
|
```markdown
|
|
50
50
|
# [Feature Name] Implementation Plan
|
|
51
51
|
|
|
52
|
-
> **For agentic workers:**
|
|
52
|
+
> **For agentic workers:** implement this plan task-by-task, in order, checking off each step as it lands. Steps use checkbox (`- [ ]`) syntax for tracking. Dispatch a fresh subagent per task where the tasks are independent (see summer:dispatching-parallel-agents), otherwise execute inline with a review checkpoint after each task.
|
|
53
53
|
|
|
54
54
|
**Goal:** [One sentence describing what this builds]
|
|
55
55
|
|
|
@@ -139,14 +139,14 @@ After saving the plan, offer execution choice:
|
|
|
139
139
|
|
|
140
140
|
**1. Subagent-Driven (recommended)** - I dispatch a fresh subagent per task, review between tasks, fast iteration
|
|
141
141
|
|
|
142
|
-
**2. Inline Execution** - Execute tasks in this session
|
|
142
|
+
**2. Inline Execution** - Execute tasks in this session, batched with checkpoints
|
|
143
143
|
|
|
144
144
|
**Which approach?"**
|
|
145
145
|
|
|
146
146
|
**If Subagent-Driven chosen:**
|
|
147
|
-
-
|
|
148
|
-
-
|
|
147
|
+
- One fresh subagent per task, each given the task's full text and nothing else from this session's history. See `summer:dispatching-parallel-agents` for prompt structure and when parallelism is safe.
|
|
148
|
+
- Two-stage review: read the subagent's summary, then verify the diff yourself before starting the next task.
|
|
149
149
|
|
|
150
150
|
**If Inline Execution chosen:**
|
|
151
|
-
-
|
|
152
|
-
-
|
|
151
|
+
- Execute tasks in order in this session, stopping at a checkpoint after each task for review.
|
|
152
|
+
- Never batch past a failing step. Fix it, verify it, then continue.
|
|
@@ -15,7 +15,7 @@ You write test cases (pressure scenarios with subagents), watch them fail (basel
|
|
|
15
15
|
|
|
16
16
|
**Core principle:** If you didn't watch an agent fail without the skill, you don't know if the skill teaches the right thing.
|
|
17
17
|
|
|
18
|
-
**REQUIRED BACKGROUND:**
|
|
18
|
+
**REQUIRED BACKGROUND:** This skill adapts the RED-GREEN-REFACTOR cycle to documentation. The cycle: write the test first and watch it FAIL for the reason you expect (red), make the smallest change that passes it (green), then clean up without changing behaviour (refactor). A test you never saw fail proves nothing.
|
|
19
19
|
|
|
20
20
|
**Official guidance:** For Anthropic's official skill authoring best practices, see anthropic-best-practices.md. This document provides additional patterns and guidelines that complement the TDD-focused approach in this skill.
|
|
21
21
|
|
|
@@ -280,10 +280,12 @@ wc -w skills/path/SKILL.md
|
|
|
280
280
|
**When writing documentation that references other skills:**
|
|
281
281
|
|
|
282
282
|
Use skill name only, with explicit requirement markers:
|
|
283
|
-
- ✅ Good: `**REQUIRED SUB-SKILL:** Use summer:
|
|
283
|
+
- ✅ Good: `**REQUIRED SUB-SKILL:** Use summer:verification-before-completion`
|
|
284
284
|
- ✅ Good: `**REQUIRED BACKGROUND:** You MUST understand summer:investigating-bugs`
|
|
285
|
-
- ❌ Bad: `See skills/
|
|
286
|
-
- ❌ Bad: `@skills/
|
|
285
|
+
- ❌ Bad: `See skills/debugging/debug` (unclear if required)
|
|
286
|
+
- ❌ Bad: `@skills/debugging/debug/SKILL.md` (force-loads, burns context)
|
|
287
|
+
|
|
288
|
+
**Check the skill exists before you point at it.** The registry of shipped skills is the `SKILL_REGISTRY` array in `src/lib/skills-registry.ts` and the `skills:` array in `.claude-plugin/plugin.json`. A `REQUIRED SUB-SKILL` pointing at a skill that was never shipped is worse than no cross-reference: the reader stops and looks for something that does not exist.
|
|
287
289
|
|
|
288
290
|
**Why no @ links:** `@` syntax force-loads files immediately, consuming 200k+ context before you need them.
|
|
289
291
|
|
|
@@ -390,7 +392,7 @@ Edit skill without testing? Same violation.
|
|
|
390
392
|
- Don't "adapt" while running tests
|
|
391
393
|
- Delete means delete
|
|
392
394
|
|
|
393
|
-
**
|
|
395
|
+
**Why this matters:** an untested change is an assertion, not a result. Same principle in documentation as in code.
|
|
394
396
|
|
|
395
397
|
## Testing All Skill Types
|
|
396
398
|
|
|
File without changes
|
|
@@ -10,7 +10,7 @@ You run scenarios without the skill (RED - watch agent fail), write skill addres
|
|
|
10
10
|
|
|
11
11
|
**Core principle:** If you didn't watch an agent fail without the skill, you don't know if the skill prevents the right failures.
|
|
12
12
|
|
|
13
|
-
**REQUIRED BACKGROUND:**
|
|
13
|
+
**REQUIRED BACKGROUND:** the RED-GREEN-REFACTOR cycle as stated just above. This reference supplies the skill-specific test formats on top of it (pressure scenarios, rationalization tables).
|
|
14
14
|
|
|
15
15
|
**Complete worked example:** See examples/CLAUDE_MD_TESTING.md for a full test campaign testing CLAUDE.md documentation variants.
|
|
16
16
|
|