summer-engine 3.0.0 → 3.1.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.
Files changed (81) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/.codex-plugin/plugin.json +1 -1
  4. package/.cursor-plugin/plugin.json +1 -1
  5. package/.factory-plugin/plugin.json +1 -1
  6. package/CHANGELOG.md +18 -0
  7. package/README.md +4 -4
  8. package/dist/cli/commands/setup.js +6 -19
  9. package/dist/cli/commands/skills.js +40 -33
  10. package/dist/core/capabilities/runtime-control.d.ts +4 -4
  11. package/dist/core/skills-registry.d.ts +9 -1
  12. package/dist/core/skills-registry.js +25 -2
  13. package/dist/installer/agent-config.d.ts +9 -4
  14. package/dist/installer/agent-config.js +192 -392
  15. package/dist/installer/agent-table.d.ts +103 -0
  16. package/dist/installer/agent-table.js +584 -0
  17. package/dist/installer/setup.js +4 -2
  18. package/dist/installer/skill-locations.d.ts +8 -17
  19. package/dist/installer/skill-locations.js +22 -101
  20. package/dist/installer/version-check.d.ts +5 -1
  21. package/dist/installer/version-check.js +38 -28
  22. package/gemini-extension.json +1 -1
  23. package/integrations/README.md +48 -19
  24. package/integrations/amp/README.md +12 -0
  25. package/integrations/amp/manifest-target.json +3 -0
  26. package/integrations/antigravity/README.md +12 -0
  27. package/integrations/antigravity/manifest-target.json +3 -0
  28. package/integrations/claude-desktop/README.md +12 -0
  29. package/integrations/claude-desktop/manifest-target.json +3 -0
  30. package/integrations/cline/README.md +8 -9
  31. package/integrations/cline-cli/README.md +12 -0
  32. package/integrations/cline-cli/manifest-target.json +3 -0
  33. package/integrations/copilot-jetbrains/README.md +12 -0
  34. package/integrations/copilot-jetbrains/manifest-target.json +3 -0
  35. package/integrations/crush/README.md +12 -0
  36. package/integrations/crush/manifest-target.json +3 -0
  37. package/integrations/github-copilot/README.md +8 -8
  38. package/integrations/goose/README.md +12 -0
  39. package/integrations/goose/manifest-target.json +3 -0
  40. package/integrations/grok-build/README.md +12 -0
  41. package/integrations/grok-build/manifest-target.json +3 -0
  42. package/integrations/hermes/README.md +12 -0
  43. package/integrations/hermes/manifest-target.json +3 -0
  44. package/integrations/junie/README.md +12 -0
  45. package/integrations/junie/manifest-target.json +3 -0
  46. package/integrations/kilo-code/README.md +6 -10
  47. package/integrations/kimi-code/README.md +12 -0
  48. package/integrations/kimi-code/manifest-target.json +3 -0
  49. package/integrations/kiro/README.md +12 -0
  50. package/integrations/kiro/manifest-target.json +3 -0
  51. package/integrations/lm-studio/README.md +8 -8
  52. package/integrations/mistral-vibe/README.md +12 -0
  53. package/integrations/mistral-vibe/manifest-target.json +3 -0
  54. package/integrations/opencode/README.md +9 -12
  55. package/integrations/qoder/README.md +12 -0
  56. package/integrations/qoder/manifest-target.json +3 -0
  57. package/integrations/qwen-code/README.md +12 -0
  58. package/integrations/qwen-code/manifest-target.json +3 -0
  59. package/integrations/roo-code/README.md +8 -7
  60. package/integrations/rovo-dev/README.md +12 -0
  61. package/integrations/rovo-dev/manifest-target.json +3 -0
  62. package/integrations/trae/README.md +12 -0
  63. package/integrations/trae/manifest-target.json +3 -0
  64. package/integrations/visual-studio/README.md +12 -0
  65. package/integrations/visual-studio/manifest-target.json +3 -0
  66. package/integrations/vscode-copilot/README.md +9 -9
  67. package/integrations/warp/README.md +12 -0
  68. package/integrations/warp/manifest-target.json +3 -0
  69. package/integrations/windsurf/README.md +8 -9
  70. package/integrations/zed/README.md +12 -0
  71. package/integrations/zed/manifest-target.json +3 -0
  72. package/library/skills/README.md +242 -0
  73. package/package.json +3 -3
  74. package/registry/generated/gemini-extension.json +1 -1
  75. package/registry/generated/marketplace.claude.json +1 -1
  76. package/registry/generated/plugin.claude.json +1 -1
  77. package/registry/generated/plugin.codex.json +1 -1
  78. package/registry/generated/plugin.cursor.json +1 -1
  79. package/registry/generated/plugin.factory.json +1 -1
  80. package/registry/generated/skills-index.md +242 -0
  81. package/registry/generated/skills-registry.json +492 -94
@@ -0,0 +1,3 @@
1
+ {
2
+ "targets": []
3
+ }
@@ -0,0 +1,12 @@
1
+ # Junie integration
2
+
3
+ No manifest file is generated in this repo for Junie — `manifest-target.json`
4
+ is intentionally empty. Support is delivered at install time by
5
+ `summer setup junie` (aliases: `jetbrains-junie`), which writes:
6
+
7
+ - MCP config: `~/.junie/mcp/mcp.json`; Windows `%USERPROFILE%/.junie/mcp/mcp.json` (user); `.junie/mcp/mcp.json` (project).
8
+ Shape: `mcpServers.summer-engine = { command, args }`.
9
+ - Skills: none. Junie has no skills folder; put project guidance in .junie/guidelines.md. The MCP server ships summer_get_agent_playbook for in-chat guidance.
10
+ - After: Restart the JetBrains IDE so Junie reloads its MCP config.
11
+
12
+ Source of truth: `src/installer/agent-table.ts` (one row per agent).
@@ -0,0 +1,3 @@
1
+ {
2
+ "targets": []
3
+ }
@@ -2,15 +2,11 @@
2
2
 
3
3
  No manifest file is generated in this repo for Kilo Code — `manifest-target.json`
4
4
  is intentionally empty. Support is delivered at install time by
5
- `summer setup kilo-code`, which writes:
5
+ `summer setup kilo-code` (aliases: `kilo`, `kilocode`), which writes:
6
6
 
7
- - MCP config: Kilo Code's VS Code global storage
8
- (`<VS Code user dir>/globalStorage/kilocode.kilo-code/settings/mcp_settings.json`,
9
- user scope) or `./.kilocode/mcp.json` (project scope).
10
- - Skills: `summer setup kilo-code` installs the whole library in the same
11
- scope as the MCP config (user by default), as rule files in
12
- `~/.kilocode/rules/summer-<skill>.md` (user) or `./.kilocode/rules/`
13
- (project). `summer skills install --agent kilo-code` on its own defaults
14
- to project scope; pass `--scope user` to match a user-scope MCP config.
7
+ - MCP config: `~/.config/kilo/kilo.json`; Windows `%APPDATA%/kilo/kilo.json` (user); `kilo.json` (project).
8
+ Shape: `mcp.summer-engine = { type: "local", command: [npx, ...], enabled: true }`.
9
+ - Skills: `~/.kilo/skills` (user) or `.kilo/skills` (project) as `<skill>/SKILL.md`.
10
+ - After: Restart Kilo (CLI or the VS Code extension) so it reloads kilo.json.
15
11
 
16
- Source of truth: `src/installer/agent-config.ts`, `src/cli/commands/skills.ts`.
12
+ Source of truth: `src/installer/agent-table.ts` (one row per agent).
@@ -0,0 +1,12 @@
1
+ # Kimi Code CLI integration
2
+
3
+ No manifest file is generated in this repo for Kimi Code CLI — `manifest-target.json`
4
+ is intentionally empty. Support is delivered at install time by
5
+ `summer setup kimi-code` (aliases: `kimi`, `kimi-cli`, `kimicode`), which writes:
6
+
7
+ - MCP config: `~/.kimi-code/mcp.json`; Windows `%USERPROFILE%/.kimi-code/mcp.json` (user); `.kimi-code/mcp.json` (project).
8
+ Shape: `mcpServers.summer-engine = { command, args }`.
9
+ - Skills: `~/.kimi-code/skills` (user) or `.kimi-code/skills` (project) as `<skill>/SKILL.md`.
10
+ - After: Restart Kimi Code CLI so it reconnects its MCP servers.
11
+
12
+ Source of truth: `src/installer/agent-table.ts` (one row per agent).
@@ -0,0 +1,3 @@
1
+ {
2
+ "targets": []
3
+ }
@@ -0,0 +1,12 @@
1
+ # Kiro integration
2
+
3
+ No manifest file is generated in this repo for Kiro — `manifest-target.json`
4
+ is intentionally empty. Support is delivered at install time by
5
+ `summer setup kiro` (aliases: `kiro-ide`, `aws-kiro`), which writes:
6
+
7
+ - MCP config: `~/.kiro/settings/mcp.json`; Windows `%USERPROFILE%/.kiro/settings/mcp.json` (user); `.kiro/settings/mcp.json` (project).
8
+ Shape: `mcpServers.summer-engine = { command, args }`.
9
+ - Skills: `~/.kiro/skills` (user) or `.kiro/skills` (project) as `<skill>/SKILL.md`.
10
+ - After: Kiro reloads MCP config on save; open the MCP Servers view to confirm summer-engine is connected.
11
+
12
+ Source of truth: `src/installer/agent-table.ts` (one row per agent).
@@ -0,0 +1,3 @@
1
+ {
2
+ "targets": []
3
+ }
@@ -1,12 +1,12 @@
1
1
  # LM Studio integration
2
2
 
3
- No manifest file is generated in this repo for LM Studio —
4
- `manifest-target.json` is intentionally empty. Support is delivered at install
5
- time by `summer setup lm-studio`, which writes:
3
+ No manifest file is generated in this repo for LM Studio — `manifest-target.json`
4
+ is intentionally empty. Support is delivered at install time by
5
+ `summer setup lm-studio` (aliases: `lmstudio`, `lm_studio`), which writes:
6
6
 
7
- - MCP config: `~/.lmstudio/mcp.json`. This file is app-global (user scope
8
- only); project-scope requests are treated as user scope with a warning.
9
- - Skills: LM Studio has no rules or skills folder. The MCP server ships
10
- `summer_get_agent_playbook`, so the model pulls Summer guidance in-chat.
7
+ - MCP config: `~/.lmstudio/mcp.json`; Windows `%USERPROFILE%/.lmstudio/mcp.json` (user); user scope only (project requests fall back with a warning).
8
+ Shape: `mcpServers.summer-engine = { command, args }`.
9
+ - Skills: none. LM Studio has no rules or skills folder. The MCP server ships summer_get_agent_playbook, so the model can pull Summer guidance in-chat.
10
+ - After: Open LM Studio, toggle on the summer-engine MCP server in the Program tab, and raise the loaded model's context length to 32k or higher.
11
11
 
12
- Source of truth: `src/installer/agent-config.ts`, `src/installer/setup.ts`.
12
+ Source of truth: `src/installer/agent-table.ts` (one row per agent).
@@ -0,0 +1,12 @@
1
+ # Mistral Vibe integration
2
+
3
+ No manifest file is generated in this repo for Mistral Vibe — `manifest-target.json`
4
+ is intentionally empty. Support is delivered at install time by
5
+ `summer setup mistral-vibe` (aliases: `vibe`, `mistral`), which writes:
6
+
7
+ - MCP config: `~/.vibe/config.toml`; Windows `%USERPROFILE%/.vibe/config.toml` (user); `.vibe/config.toml` (project).
8
+ Shape: undefined.
9
+ - Skills: `~/.vibe/skills` (user) or `.vibe/skills` (project) as `<skill>/SKILL.md`.
10
+ - After: Restart Vibe so it reloads config.toml.
11
+
12
+ Source of truth: `src/installer/agent-table.ts` (one row per agent).
@@ -0,0 +1,3 @@
1
+ {
2
+ "targets": []
3
+ }
@@ -1,15 +1,12 @@
1
1
  # OpenCode integration
2
2
 
3
- Nothing is generated for OpenCode today. OpenCode consumes the npm package as
4
- a JavaScript module (`.opencode/plugins/summer.js`, wired via the package's
5
- `main` field). The plugin's `config` hook appends `<package>/library/skills`
6
- to `skills.paths` (OpenCode's `<dir>/<name>/SKILL.md` layout) and its
7
- `experimental.chat.messages.transform` hook prepends the Summer orientation to
8
- the first user message once per session. `summer setup opencode` writes the
9
- MCP entry to `opencode.json` (`type: "local"`, array `command`) and installs
10
- skills as markdown under `agents/summer/`. `manifest-target.json` is
11
- intentionally empty. Install steps: `.opencode/INSTALL.md`.
3
+ No manifest file is generated in this repo for OpenCode — `manifest-target.json`
4
+ is intentionally empty. Support is delivered at install time by
5
+ `summer setup opencode` (aliases: `open-code`), which writes:
12
6
 
13
- If OpenCode grows a declarative manifest, add its builder to
14
- `scripts/generate-registry/manifests.ts` and its target to
15
- `scripts/generate-registry/targets.ts` (mirrored here).
7
+ - MCP config: `~/.config/opencode/opencode.json`; Windows `%APPDATA%/opencode/opencode.json` (user); `opencode.json` (project).
8
+ Shape: `mcp.summer-engine = { type: "local", command: [npx, ...], enabled: true }`.
9
+ - Skills: `~/.config/opencode/skills` (user) or `.opencode/skills` (project) as `<skill>/SKILL.md`. OpenCode loads skills from this folder on the next session. Summer 3.0 and earlier wrote markdown under agents/summer; `--force` removes those.
10
+ - After: Restart OpenCode so it reloads opencode.json.
11
+
12
+ Source of truth: `src/installer/agent-table.ts` (one row per agent).
@@ -0,0 +1,12 @@
1
+ # Qoder CLI integration
2
+
3
+ No manifest file is generated in this repo for Qoder CLI — `manifest-target.json`
4
+ is intentionally empty. Support is delivered at install time by
5
+ `summer setup qoder` (aliases: `qoder-cli`), which writes:
6
+
7
+ - MCP config: `~/.qoder/settings.json`; Windows `%USERPROFILE%/.qoder/settings.json` (user); `.mcp.json` (project).
8
+ Shape: `mcpServers.summer-engine = { command, args }`.
9
+ - Skills: `~/.qoder/skills` (user) or `.qoder/skills` (project) as `<skill>/SKILL.md`.
10
+ - After: Restart Qoder CLI so it reloads its MCP settings (the Qoder IDE manages servers in its UI).
11
+
12
+ Source of truth: `src/installer/agent-table.ts` (one row per agent).
@@ -0,0 +1,3 @@
1
+ {
2
+ "targets": []
3
+ }
@@ -0,0 +1,12 @@
1
+ # Qwen Code integration
2
+
3
+ No manifest file is generated in this repo for Qwen Code — `manifest-target.json`
4
+ is intentionally empty. Support is delivered at install time by
5
+ `summer setup qwen-code` (aliases: `qwen`, `qwencode`), which writes:
6
+
7
+ - MCP config: `~/.qwen/settings.json`; Windows `%USERPROFILE%/.qwen/settings.json` (user); `.qwen/settings.json` (project).
8
+ Shape: `mcpServers.summer-engine = { command, args }`.
9
+ - Skills: `~/.qwen/skills` (user) or `.qwen/skills` (project) as `<skill>/SKILL.md`.
10
+ - After: Restart Qwen Code or run /mcp in a new session.
11
+
12
+ Source of truth: `src/installer/agent-table.ts` (one row per agent).
@@ -0,0 +1,3 @@
1
+ {
2
+ "targets": []
3
+ }
@@ -1,13 +1,14 @@
1
1
  # Roo Code integration
2
2
 
3
+ > **Legacy.** Roo Code shut down on 2026-05-15. The extension may still run, but it is no longer maintained; consider Cline or Kilo Code.
4
+
3
5
  No manifest file is generated in this repo for Roo Code — `manifest-target.json`
4
6
  is intentionally empty. Support is delivered at install time by
5
- `summer setup roo-code`, which writes:
7
+ `summer setup roo-code` (aliases: `roo`, `roocode`), which writes:
6
8
 
7
- - MCP config: Roo Code's VS Code global storage (extension
8
- `rooveterinaryinc.roo-cline`). User scope only — no project-scoped MCP config
9
- today; project requests fall back to user scope with a warning.
10
- - Skills: `summer skills install --agent roo-code` writes rule files to Roo
11
- Code's user rules directory (user scope) or `./.clinerules` (project scope).
9
+ - MCP config: `~/Library/Application Support/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/cline_mcp_settings.json`; Linux `~/.config/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/cline_mcp_settings.json`; Windows `%APPDATA%/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/cline_mcp_settings.json` (user); user scope only (project requests fall back with a warning).
10
+ Shape: `mcpServers.summer-engine = { command, args }`.
11
+ - Skills: `~/Documents/Roo/Rules` (user) or `.clinerules` (project) as rule files `summer-<skill>.md`.
12
+ - After: Restart VS Code so Roo Code reloads its MCP config.
12
13
 
13
- Source of truth: `src/installer/agent-config.ts`, `src/cli/commands/skills.ts`.
14
+ Source of truth: `src/installer/agent-table.ts` (one row per agent).
@@ -0,0 +1,12 @@
1
+ # Rovo Dev CLI integration
2
+
3
+ No manifest file is generated in this repo for Rovo Dev CLI — `manifest-target.json`
4
+ is intentionally empty. Support is delivered at install time by
5
+ `summer setup rovo-dev` (aliases: `rovodev`, `rovo`, `atlassian-rovo-dev`), which writes:
6
+
7
+ - MCP config: `~/.rovodev/mcp.json`; Windows `%USERPROFILE%/.rovodev/mcp.json` (user); user scope only (project requests fall back with a warning).
8
+ Shape: undefined.
9
+ - Skills: `~/.rovodev/skills` (user) or `.rovodev/skills` (project) as `<skill>/SKILL.md`.
10
+ - After: Restart Rovo Dev CLI so it reconnects its MCP servers.
11
+
12
+ Source of truth: `src/installer/agent-table.ts` (one row per agent).
@@ -0,0 +1,3 @@
1
+ {
2
+ "targets": []
3
+ }
@@ -0,0 +1,12 @@
1
+ # Trae integration
2
+
3
+ No manifest file is generated in this repo for Trae — `manifest-target.json`
4
+ is intentionally empty. Support is delivered at install time by
5
+ `summer setup trae` (aliases: `trae-ide`, `bytedance-trae`), which writes:
6
+
7
+ - MCP config: `.trae/mcp.json` (user); `.trae/mcp.json` (project).
8
+ Shape: `mcpServers.summer-engine = { command, args }`.
9
+ - Skills: none. Trae documents no skills folder; the MCP server ships summer_get_agent_playbook for in-chat guidance.
10
+ - After: Restart Trae and open the MCP settings; summer-engine should show as connected.
11
+
12
+ Source of truth: `src/installer/agent-table.ts` (one row per agent).
@@ -0,0 +1,3 @@
1
+ {
2
+ "targets": []
3
+ }
@@ -0,0 +1,12 @@
1
+ # GitHub Copilot in Visual Studio integration
2
+
3
+ No manifest file is generated in this repo for GitHub Copilot in Visual Studio — `manifest-target.json`
4
+ is intentionally empty. Support is delivered at install time by
5
+ `summer setup visual-studio` (aliases: `vs`, `vs2026`, `visual-studio-2026`, `visualstudio`), which writes:
6
+
7
+ - MCP config: `~/.mcp.json`; Windows `%USERPROFILE%/.mcp.json` (user); `.mcp.json` (project).
8
+ Shape: `servers.summer-engine = { type: "stdio", command, args }`.
9
+ - Skills: none. Visual Studio's Copilot has no skills folder yet; the MCP server ships summer_get_agent_playbook for in-chat guidance.
10
+ - After: Restart Visual Studio, open Copilot Chat in Agent mode, and enable summer-engine in the tools picker.
11
+
12
+ Source of truth: `src/installer/agent-table.ts` (one row per agent).
@@ -0,0 +1,3 @@
1
+ {
2
+ "targets": []
3
+ }
@@ -1,12 +1,12 @@
1
- # VS Code Copilot integration
1
+ # GitHub Copilot in VS Code integration
2
2
 
3
- No manifest file is generated in this repo for VS Code Copilot —
4
- `manifest-target.json` is intentionally empty. Support is delivered at install
5
- time by `summer setup vscode-copilot`, which writes:
3
+ No manifest file is generated in this repo for GitHub Copilot in VS Code — `manifest-target.json`
4
+ is intentionally empty. Support is delivered at install time by
5
+ `summer setup vscode-copilot` (aliases: `vscode`, `vs-code`, `vs-code-copilot`, `github-copilot-vscode`), which writes:
6
6
 
7
- - MCP config: VS Code's user-profile `mcp.json` (user scope) or
8
- `./.vscode/mcp.json` (project scope), in VS Code's MCP config format.
9
- - Skills: `summer skills install --agent vscode-copilot` writes skill files to
10
- `~/.copilot/skills/` (user scope) or `./.github/skills/` (project scope).
7
+ - MCP config: `~/Library/Application Support/Code/User/mcp.json`; Linux `~/.config/Code/User/mcp.json`; Windows `%APPDATA%/Code/User/mcp.json` (user); `.vscode/mcp.json` (project).
8
+ Shape: `servers.summer-engine = { type: "stdio", command, args }`.
9
+ - Skills: `~/.copilot/skills` (user) or `.github/skills` (project) as `<skill>/SKILL.md`.
10
+ - After: Restart VS Code or run MCP: List Servers, then start summer-engine in Copilot Agent mode.
11
11
 
12
- Source of truth: `src/installer/agent-config.ts`, `src/cli/commands/skills.ts`.
12
+ Source of truth: `src/installer/agent-table.ts` (one row per agent).
@@ -0,0 +1,12 @@
1
+ # Warp integration
2
+
3
+ No manifest file is generated in this repo for Warp — `manifest-target.json`
4
+ is intentionally empty. Support is delivered at install time by
5
+ `summer setup warp` (aliases: `warp-terminal`), which writes:
6
+
7
+ - MCP config: `~/.warp/.mcp.json`; Windows `%USERPROFILE%/.warp/.mcp.json` (user); `.warp/.mcp.json` (project).
8
+ Shape: `mcpServers.summer-engine = { command, args }`.
9
+ - Skills: `~/.warp/skills` (user) or `.warp/skills` (project) as `<skill>/SKILL.md`.
10
+ - After: Warp detects the file and spawns the server; check Settings > AI > MCP servers.
11
+
12
+ Source of truth: `src/installer/agent-table.ts` (one row per agent).
@@ -0,0 +1,3 @@
1
+ {
2
+ "targets": []
3
+ }
@@ -1,13 +1,12 @@
1
- # Windsurf (Devin Desktop) integration
1
+ # Devin Desktop (formerly Windsurf) integration
2
2
 
3
- No manifest file is generated in this repo for Windsurf — `manifest-target.json`
3
+ No manifest file is generated in this repo for Devin Desktop (formerly Windsurf) — `manifest-target.json`
4
4
  is intentionally empty. Support is delivered at install time by
5
- `summer setup windsurf`, which writes:
5
+ `summer setup windsurf` (aliases: `devin`, `devin-desktop`, `devindesktop`), which writes:
6
6
 
7
- - MCP config: `~/.codeium/windsurf/mcp_config.json` (user scope; project scope
8
- writes `.windsurf/mcp_config.json` for teams that load workspace config —
9
- Windsurf documents MCP configuration as user-scoped).
10
- - Skills: `summer skills install --agent windsurf` writes the `.windsurfrules`
11
- rule file (`~/.windsurfrules` user scope, `./.windsurfrules` project scope).
7
+ - MCP config: `~/.codeium/windsurf/mcp_config.json`; Windows `%USERPROFILE%/.codeium/windsurf/mcp_config.json` (user); user scope only (project requests fall back with a warning).
8
+ Shape: `mcpServers.summer-engine = { command, args }`.
9
+ - Skills: `~/.codeium/windsurf/skills` (user) or `.windsurf/skills` (project) as `<skill>/SKILL.md`.
10
+ - After: Restart Devin Desktop (formerly Windsurf) and refresh MCP servers from the agent settings. Devin's docs say mcp_config.json configures the Cascade agent; for the Devin agent add the server in the app's MCP settings with the same command.
12
11
 
13
- Source of truth: `src/installer/agent-config.ts`, `src/cli/commands/skills.ts`.
12
+ Source of truth: `src/installer/agent-table.ts` (one row per agent).
@@ -0,0 +1,12 @@
1
+ # Zed integration
2
+
3
+ No manifest file is generated in this repo for Zed — `manifest-target.json`
4
+ is intentionally empty. Support is delivered at install time by
5
+ `summer setup zed` (aliases: `zed-editor`), which writes:
6
+
7
+ - MCP config: `~/.config/zed/settings.json`; Windows `%APPDATA%/zed/settings.json` (user); user scope only (project requests fall back with a warning).
8
+ Shape: `context_servers.summer-engine = { source: "custom", command, args, env }`.
9
+ - Skills: `~/.agents/skills` (user) or `.agents/skills` (project) as `<skill>/SKILL.md`.
10
+ - After: Zed reloads settings.json live; open the Agent panel and check summer-engine under MCP servers.
11
+
12
+ Source of truth: `src/installer/agent-table.ts` (one row per agent).
@@ -0,0 +1,3 @@
1
+ {
2
+ "targets": []
3
+ }
@@ -0,0 +1,242 @@
1
+ # Summer skills
2
+
3
+ > 94 skills, grouped by their primary domain. **Generated** by `npm run generate:registry` from each skill's `resource.yaml`; `--check` fails when this file and the library disagree. Do not edit by hand.
4
+
5
+ The folder is flat on purpose (`docs/design/DECISIONS.md`, D3): a skill usually belongs to several domains, so categories live in each skill's `facets.domains` and this index is rendered from them. The first domain listed is the primary one. `summer skills list --by-domain` prints the same grouping; `summer skills info <slug>` shows one skill.
6
+
7
+ Status: **stable** unless marked; *preview* = not yet exercised in-engine by the Summer team; ~~deprecated~~ installs only by name. ★ = installed by `--recommended`.
8
+
9
+ ## Domains
10
+
11
+ - [2d](#2d) (10)
12
+ - [3d](#3d) (6)
13
+ - [agent-workflow](#agent-workflow) (17)
14
+ - [ai](#ai) (1)
15
+ - [animation](#animation) (6)
16
+ - [assets](#assets) (3)
17
+ - [audio](#audio) (6)
18
+ - [character-controller](#character-controller) (1)
19
+ - [debug](#debug) (1)
20
+ - [deployment](#deployment) (2)
21
+ - [editor](#editor) (1)
22
+ - [gameplay](#gameplay) (3)
23
+ - [level-design](#level-design) (2)
24
+ - [multiplayer](#multiplayer) (3)
25
+ - [navigation](#navigation) (1)
26
+ - [performance](#performance) (1)
27
+ - [rendering](#rendering) (4)
28
+ - [runtime](#runtime) (1)
29
+ - [scenes](#scenes) (11)
30
+ - [scripting](#scripting) (1)
31
+ - [ui](#ui) (1)
32
+ - [vfx](#vfx) (9)
33
+ - [video](#video) (3)
34
+
35
+ ## 2d
36
+
37
+ | skill | when to use | also |
38
+ |---|---|---|
39
+ | [character-portrait](./character-portrait/SKILL.md) ★ | Generate a single polished character bust for dialogue UI, character select, lore cards, or codex entries. One character, locked composition, VN-style. | assets |
40
+ | [concept-art](./concept-art/SKILL.md) ★ | Explore art direction with 3-4 rough concept variants of a character, environment, or prop to pick a vibe before committing to a final asset. | assets |
41
+ | [create-asset-sheet](./create-asset-sheet/SKILL.md) | Generate a pack of 2D game assets from one prompt — tile sheet, UI kit, character pack, or biome set — sliced, classified, and saved as one pack ArtAsset. | assets |
42
+ | [instantiate-asset-pack](./instantiate-asset-pack/SKILL.md) | Import a whole create-asset-sheet pack into the scene: groups composites, sorts paint order, emits Sprite2D/Node2D/NinePatchRect ops to lay it out. | assets |
43
+ | [pixel-art](./pixel-art/SKILL.md) ★ | Generate pixel-art assets — sprites, items, tiles, portraits — at a specific resolution with pixel-perfect grid, limited palette, retro feel. | assets |
44
+ | [skybox-panorama](./skybox-panorama/SKILL.md) | Generate a 360-degree equirectangular sky panorama and wire it as a PanoramaSkyMaterial Sky resource on WorldEnvironment in a 3D scene. | assets |
45
+ | [sprite-sheet](./sprite-sheet/SKILL.md) | Generate animated 2D character sprites laid out as a sprite sheet — walk cycle, attack, idle, death — wired into AnimatedSprite2D / SpriteFrames. | assets |
46
+ | [tileable-texture](./tileable-texture/SKILL.md) | Generate a seamless tileable texture for walls, floors, or terrain — repeats cleanly on all four edges, wired as a StandardMaterial3D albedo. | assets |
47
+ | [ui-graphics](./ui-graphics/SKILL.md) | Generate game-UI elements — icons, buttons, panels, frames, HUD widgets, badges — flat design, transparent background, wired via TextureRect/NinePatchRect. | assets |
48
+ | [use-widget-asset](./use-widget-asset/SKILL.md) | Wire a widget slice from a create-asset-sheet pack (panel, button, slider, bar, toggle) into NinePatchRect, TextureProgressBar, or TextureRect via sliceMeta. | assets |
49
+
50
+ ## 3d
51
+
52
+ | skill | when to use | also |
53
+ |---|---|---|
54
+ | [character-model](./character-model/SKILL.md) ★ | Generate a rigged humanoid — player, NPC, enemy, boss — via T-pose reference, user-gated preview, and Meshy auto-rig, wired as CharacterBody3D or Node3D. | assets |
55
+ | [environment-kit](./environment-kit/SKILL.md) | Generate a modular environment kit — wall pieces, floor tiles, pillars, doors, arches, corners — snap-together meshes sharing one visual style. | assets |
56
+ | [*fabricating-assets*](./fabricating-assets/SKILL.md) (preview) | Fabricate meshes with a bpy script in the user's own Blender (summer_fabricate_3d) — kits with exact dimensions, VFX meshes, post-processing generated models. | assets, scripting, agent-workflow |
57
+ | [organic-model](./organic-model/SKILL.md) | Generate organic 3D shapes — trees, rocks, mushrooms, coral, plants, vines, crystals — where AI artifacts read as natural irregularity. | assets |
58
+ | [prop-model](./prop-model/SKILL.md) ★ | Generate a single static 3D prop — sword, barrel, chest, lantern, throne, statue — one isolated object, no rigging, wired as a MeshInstance3D. | assets |
59
+ | [vehicle-model](./vehicle-model/SKILL.md) | Generate a hard-surface vehicle — car, spaceship, mech, boat, tank — static mesh with optional detail-texture pass, wired as Vehicle3D or MeshInstance3D. | assets |
60
+
61
+ ## agent-workflow
62
+
63
+ | skill | when to use | also |
64
+ |---|---|---|
65
+ | [brainstorming](./brainstorming/SKILL.md) ★ | Explore user intent, requirements, and design before implementation — must run before any creative work: features, components, mechanics, behavior. | game-design |
66
+ | [debugging-game-feel](./debugging-game-feel/SKILL.md) | Debug features that work but feel wrong — floaty jumps, mushy combat, sluggish camera — subjective bugs living in tuning, timing, and feedback layers. | gameplay |
67
+ | [diagnosing-perf-regressions](./diagnosing-perf-regressions/SKILL.md) | Find why frame rate, frame time, or load time got worse since a known-good state — regression hunting, not general performance tuning. | performance |
68
+ | [dispatching-parallel-agents](./dispatching-parallel-agents/SKILL.md) | Work 2+ independent tasks in parallel when they share no state and have no sequential dependencies. | meta |
69
+ | [gameskill](./gameskill/SKILL.md) | Capture what a game-dev session just learned as a reusable skill (project, user or Summer library) so the next session starts smarter. | meta |
70
+ | [*godogen-visual-proof-game-generation*](./godogen-visual-proof-game-generation/SKILL.md) (preview) | Godogen-style game generation with a visual QC loop — capture frames from the running game, self-verify against the brief, bounded fix rounds, proof clip. | verification |
71
+ | [headless-scripting](./headless-scripting/SKILL.md) ★ | Run a GDScript file against Summer Engine from the shell for operations no MCP tool exposes — navmesh baking, collision shapes, TileSets, re-imports. | headless |
72
+ | [investigating-bugs](./investigating-bugs/SKILL.md) ★ | Systematic investigation of any bug, test failure, or unexpected behavior before proposing fixes. | debug |
73
+ | [playtesting-a-feature](./playtesting-a-feature/SKILL.md) ★ | Before claiming a gameplay feature done: actually run the game and walk through the feature. Static diagnostics and type checks do not count. | verification |
74
+ | [running-in-the-cloud](./running-in-the-cloud/SKILL.md) | Run Summer Engine on a Linux box with no display — install it, launch headless, know when xvfb + software GL are needed, authenticate without a browser. | project |
75
+ | [skill-create](./skill-create/SKILL.md) | Bootstrap a new Summer library skill (library/skills/<slug>/ with resource.yaml and SKILL.md), frontmatter, and stub sections. | meta |
76
+ | [skill-improve](./skill-improve/SKILL.md) | Upgrade an underperforming Summer skill — run it against a behavioral spec with and without changes via a parallel-eval harness; ship the winner. | meta |
77
+ | [skill-test](./skill-test/SKILL.md) | Lint a Summer skill before commit, audit the whole library, or check a behavioral spec assertion — static structural rules plus behavioral specs. | meta |
78
+ | [using-summer](./using-summer/SKILL.md) | Session bootstrap for Summer projects — establishes how to find and use Summer skills and the summer-engine MCP before any response. | meta |
79
+ | [verification-before-completion](./verification-before-completion/SKILL.md) ★ | Run verification commands and confirm output before claiming work complete, fixed, or passing — evidence before assertions, always. | verification |
80
+ | [writing-plans](./writing-plans/SKILL.md) | Turn a spec or requirements for a multi-step task into a written implementation plan before touching code. | meta |
81
+ | [writing-skills](./writing-skills/SKILL.md) | Create, edit, and verify agent skills — format, structure, testing with subagents, and best practices. | meta |
82
+
83
+ ## ai
84
+
85
+ | skill | when to use | also |
86
+ |---|---|---|
87
+ | [design-npc](./design-npc/SKILL.md) ★ | Design enemy/NPC/boss/companion behavior — perception, personality, intent, action state machine, telegraphs — outputs a GDScript stub plus node tree. | npc |
88
+
89
+ ## animation
90
+
91
+ | skill | when to use | also |
92
+ |---|---|---|
93
+ | [animation-tree](./animation-tree/SKILL.md) | Design and wire AnimationTree state machines and blend trees so clips respond to gameplay — locomotion blends, attack interrupts, hit reactions. | 3d |
94
+ | [character-animation-wiring](./character-animation-wiring/SKILL.md) | Wire a rigged, animated character end to end — inspect real clips and bones, locomotion state machine, method-track events, poses, blend shapes, root motion. | 3d |
95
+ | [facial-and-lipsync](./facial-and-lipsync/SKILL.md) | Make a character's mouth move with a voice-over — phoneme extraction from audio, viseme blendshape mapping, and emotional facial expressions. | 3d |
96
+ | [generate-motion](./generate-motion/SKILL.md) ★ | Attach an animation clip to a rigged character from the curated Meshy motion library — idle, walk, run, attack — wired via AnimationPlayer. | 3d |
97
+ | [procedural-animation](./procedural-animation/SKILL.md) | Runtime bone modification on top of clips — head look-at, foot IK, hand-grabs-prop, additive lean, recoil. Code-and-modifier patterns, not generation. | 3d |
98
+ | [retarget](./retarget/SKILL.md) | Apply existing animation clips from one rigged character to a different rigged character — same library, multiple models, no regeneration. | 3d |
99
+
100
+ ## assets
101
+
102
+ | skill | when to use | also |
103
+ |---|---|---|
104
+ | [asset-strategy](./asset-strategy/SKILL.md) ★ | Route any 'I need a [thing]' asset request to the right specialist skill — disambiguates 2D / 3D / audio / video / VFX / animation pipelines. | pipeline |
105
+ | [*lumera-single-image-scene-reconstruction*](./lumera-single-image-scene-reconstruction/SKILL.md) (preview) | Lumera-style single image to editable 3D scene — VLM-parsed object boxes and parametric lights, per-object meshes, HDR probe, .tscn assembly, refinement loop. | pipeline, 3d, scenes |
106
+ | [*skintokens-auto-rigging*](./skintokens-auto-rigging/SKILL.md) (preview) | Offline auto-rigging with skin-tokens.cpp (GGML SkinTokens/TokenRig port) — skeleton and skin weights from a static GLB mesh on CPU/Vulkan, into Godot 4. | pipeline, 3d, animation |
107
+
108
+ ## audio
109
+
110
+ | skill | when to use | also |
111
+ |---|---|---|
112
+ | [adaptive-music](./adaptive-music/SKILL.md) | Wire music stems to game state — combat/explore/boss/tension crossfades on a shared bus, paired with a state machine and AudioBus structure. | gameplay |
113
+ | [ambient-bed](./ambient-bed/SKILL.md) | Generate a long looping location ambience — forest, dungeon, city, spaceship, cave — a looping AudioStreamPlayer on the Ambient bus with a seamless loop. | assets |
114
+ | [audio-direction](./audio-direction/SKILL.md) ★ | Define the game's sonic identity — music style, instruments, SFX vocabulary, dynamic music plan — output as an audio bible at .summer/audio-bible.md. | game-design |
115
+ | [music-track](./music-track/SKILL.md) ★ | Generate a looped or cinematic music track — loops authored at >=30s with a marked loop point, cinematic tracks at >=60s linear. | assets |
116
+ | [sound-effect](./sound-effect/SKILL.md) ★ | Generate short SFX one-shots — footsteps, weapon swings, UI clicks, hit impacts — wired as AudioStreamPlayer/2D/3D that auto-frees on finished. | assets |
117
+ | [voice-line](./voice-line/SKILL.md) ★ | Generate TTS voice lines — NPC barks, narrator, dialogue — with voice-id sourcing, a character-to-voice decision tree, and multi-line dialogue support. | assets |
118
+
119
+ ## character-controller
120
+
121
+ | skill | when to use | also |
122
+ |---|---|---|
123
+ | [fps-controller](./fps-controller/SKILL.md) ★ | Production-quality first-person controller — WASD, mouse look, jump, coyote time, jump buffering, air control, and external-velocity handling. | gameplay |
124
+
125
+ ## debug
126
+
127
+ | skill | when to use | also |
128
+ |---|---|---|
129
+ | [debug](./debug/SKILL.md) ★ | Disciplined bug/crash/error loop for Summer projects — script errors, console, debugger, hypothesis, fix, verify — before making code or scene changes. | verification |
130
+
131
+ ## deployment
132
+
133
+ | skill | when to use | also |
134
+ |---|---|---|
135
+ | [export-and-ship](./export-and-ship/SKILL.md) ★ | Assess and prepare a game export: inventory installed templates and targets, validate release assets and config, produce supported builds after approval. | project |
136
+ | [remote-deploy](./remote-deploy/SKILL.md) ★ | Run or test the game on a real device — phone, tablet, another computer — via the Remote Deploy button, runnable export presets, and on-device debugging. | project |
137
+
138
+ ## editor
139
+
140
+ | skill | when to use | also |
141
+ |---|---|---|
142
+ | [*driving-the-editor-ui*](./driving-the-editor-ui/SKILL.md) (preview) | Drive the editor UI by name: invoke actions, clear blocking dialogs, switch the main screen, read a dock — and route scene work to the scene tools instead. | agent-workflow, verification |
143
+
144
+ ## gameplay
145
+
146
+ | skill | when to use | also |
147
+ |---|---|---|
148
+ | [auto-fire-targeting](./auto-fire-targeting/SKILL.md) | Design or fix auto-fire weapon targeting (survivors, top-down ARPG, tower defense) — the pending-damage pattern that prevents over-commit and overkill. | game-design |
149
+ | [*celeste-momentum-platforming*](./celeste-momentum-platforming/SKILL.md) (preview) | Celeste-style 2D precision platformer movement — momentum running, coyote time, variable jumps, dash, wall jump/slide, climb stamina, pixel corner correction. | character-controller, game-design |
150
+ | [design-mechanic](./design-mechanic/SKILL.md) ★ | Design one game mechanic in detail — input, response, feedback, failure modes, depth, tunables — outputs a design doc, node-graph sketch, GDScript stub. | game-design |
151
+
152
+ ## level-design
153
+
154
+ | skill | when to use | also |
155
+ |---|---|---|
156
+ | [design-level](./design-level/SKILL.md) ★ | Design a single level — layout, pacing, encounters, secrets, reward gating — outputs a level design doc and a node-tree skeleton for summer_create_scene. | game-design |
157
+ | [scene-to-level](./scene-to-level/SKILL.md) | Go from a scene reference image or concept art to a playable scene — orchestrates concept, asset pack, terrain, composition, and scene assembly. | game-design |
158
+
159
+ ## multiplayer
160
+
161
+ | skill | when to use | also |
162
+ |---|---|---|
163
+ | [host-authoritative-state](./host-authoritative-state/SKILL.md) ★ | Design the state layer of a multiplayer game — what the host owns, how clients request changes, and how the host validates and broadcasts. | game-design |
164
+ | [peer-to-peer-multiplayer](./peer-to-peer-multiplayer/SKILL.md) ★ | Start a multiplayer game from scratch with peer-to-peer host authority — network architecture built top-down, before writing game logic. | project |
165
+ | [setup-multiplayer](./setup-multiplayer/SKILL.md) ★ | Add multiplayer to an existing game — LAN/online co-op, PvP, lobbies — via MultiplayerAPI, MultiplayerSpawner, and MultiplayerSynchronizer. | scripting |
166
+
167
+ ## navigation
168
+
169
+ | skill | when to use | also |
170
+ |---|---|---|
171
+ | [navigate-summer](./navigate-summer/SKILL.md) ★ | When to open a Summer web page or editor surface FOR the user (billing, their games, the scene just built) versus acting through the API, using summer_open. | agent-workflow, meta |
172
+
173
+ ## performance
174
+
175
+ | skill | when to use | also |
176
+ |---|---|---|
177
+ | [tune-performance](./tune-performance/SKILL.md) ★ | Profile a slow game via summer_get_diagnostics, identify rendering/physics/scripting hotspots, propose fixes with before/after metric expectations. | debug |
178
+
179
+ ## rendering
180
+
181
+ | skill | when to use | also |
182
+ |---|---|---|
183
+ | [3d-lighting](./3d-lighting/SKILL.md) ★ | Set up 3D scene lighting — DirectionalLight3D vs Omni vs Spot, WorldEnvironment, sky, shadow tuning, ambient — per current Summer conventions. | lighting |
184
+ | [art-direction](./art-direction/SKILL.md) ★ | Define the game's visual style — references, palette, mood, lighting plan, post-processing, do/don't list — output as an art bible at .summer/art-bible.md. | lighting |
185
+ | [*psx-retro-rendering*](./psx-retro-rendering/SKILL.md) (preview) | Hardware-informed PlayStation 1 rendering in Godot 4 — low-res output, RGB5 and exact dither, affine textures, vertex snapping, blend modes, fog; limits named. | 3d |
186
+ | [*realtime-wet-surfaces*](./realtime-wet-surfaces/SKILL.md) (preview) | Real-time wetness on existing Godot 4 materials without losing their values — value-copying wet shader, geometry-driven wet mask, instance-uniform wet amount. | vfx |
187
+
188
+ ## runtime
189
+
190
+ | skill | when to use | also |
191
+ |---|---|---|
192
+ | [*agent-playtesting*](./agent-playtesting/SKILL.md) ★ (preview) | Playtest by driving the LIVE game — deterministic launch, frame-stamped probes before/after each action, exact frame steps, scripted or recorded input. | playtest, verification, agent-workflow |
193
+
194
+ ## scenes
195
+
196
+ | skill | when to use | also |
197
+ |---|---|---|
198
+ | [brainstorm-game](./brainstorm-game/SKILL.md) ★ | Turn a vague idea into a buildable plan — genre, scope, core loop, mechanics, art direction — written as a 1-page brief to .summer/GameSoul.md. | project |
199
+ | [browse-templates](./browse-templates/SKILL.md) ★ | List available Summer Engine project templates, present the choices, and create a project from the chosen one via summer create. | project |
200
+ | [make-game](./make-game/SKILL.md) ★ | Orchestration spine for 'make me a game': brainstorm, plan, scaffold, mechanics, art, audio, polish, verify, ship — delegates to specialist skills. | project |
201
+ | [new-project](./new-project/SKILL.md) ★ | Create a fresh blank Summer Engine project — asks one question (project name) and runs summer create empty. | project |
202
+ | [play](./play/SKILL.md) ★ | Run the project in Summer Engine, wait briefly, then report what's happening — clean run, errors, or warnings. | project |
203
+ | [scene-composition](./scene-composition/SKILL.md) ★ | Scene structure conventions — node hierarchy, when to extract sub-scenes, reusable prefab patterns, and instance-versus-add-node decisions. | project |
204
+ | [*scene-hierarchy-design*](./scene-hierarchy-design/SKILL.md) (preview) | Structure Summer Engine scenes by access pattern — asset vs live hierarchies, wrapper nodes per operation, sub-scenes for reuse, path-agnostic logic. | project, agent-workflow |
205
+ | [*scene-scripting*](./scene-scripting/SKILL.md) ★ (preview) | One GDScript in the live editor (summer_run_script) builds scenes, 2D levels, HUDs and gameplay wiring instead of CRUD chains; verify with diff + screenshot. | scripting, 2d, ui, agent-workflow |
206
+ | [*spatial-placement*](./spatial-placement/SKILL.md) ★ (preview) | Place and verify 3D objects with Starcast evidence — inspect, place, starcast, correct, verify; floor, shelf, wall, alcove recipes and overlap repair. | 3d, world-building, level-design, verification |
207
+ | [*verifying-scenes*](./verifying-scenes/SKILL.md) ★ (preview) | Prove scene work landed — snapshot before, diff + screenshot after (bookmarked viewpoint, labels), live runtime reads during playtests — then claim. | verification, agent-workflow |
208
+ | [*world-building-3d*](./world-building-3d/SKILL.md) ★ (preview) | Compose, ground, space, and validate 3D scenes with Summer's four bounded spatial tools — exact paths, one geometric decision at a time, verified. | 3d, world-building, level-design, verification |
209
+
210
+ ## scripting
211
+
212
+ | skill | when to use | also |
213
+ |---|---|---|
214
+ | [gdscript-patterns](./gdscript-patterns/SKILL.md) ★ | GDScript conventions — type hints, signals, exports, onready, lifecycle methods, get_node vs $NodePath, naming. | conventions |
215
+
216
+ ## ui
217
+
218
+ | skill | when to use | also |
219
+ |---|---|---|
220
+ | [ui-basics](./ui-basics/SKILL.md) ★ | Build Summer Engine UI — HUDs, menus, health bars, dialogue boxes, Control trees — anchors, containers, responsive layout, theme vs inline styling. | ux |
221
+
222
+ ## vfx
223
+
224
+ | skill | when to use | also |
225
+ |---|---|---|
226
+ | [game-feel](./game-feel/SKILL.md) ★ | Add juice: hit-flash, trauma-based camera shake, and audio ducking wired so one hit fires all three — for games that feel flat or lack impact. | gameplay |
227
+ | [vfx-dissolve](./vfx-dissolve/SKILL.md) | Dissolve effect — a mesh disintegrating with a glowing burning edge, driven by a noise-threshold ShaderMaterial overriding the target's material. | rendering |
228
+ | [vfx-fire](./vfx-fire/SKILL.md) ★ | Fire effect — animated flames built with a particle shader, GPUParticles3D, and a noise-based color ramp — torches, campfires, candles. | rendering |
229
+ | [vfx-hit-spark](./vfx-hit-spark/SKILL.md) | Hit-spark effect — a one-shot burst of additive billboard particles oriented to a surface normal, fired on impact. | rendering |
230
+ | [vfx-lightning](./vfx-lightning/SKILL.md) | Lightning bolt effect — procedural jagged path drawn via ImmediateMesh, glow shader, sparks at endpoints, screen shake. | rendering |
231
+ | [vfx-magic-glow](./vfx-magic-glow/SKILL.md) | Magic-glow effect — a pulsing OmniLight3D plus drifting additive motes plus optional emission shader on the source mesh. | rendering |
232
+ | [vfx-muzzle-flash](./vfx-muzzle-flash/SKILL.md) ★ | Muzzle-flash effect — a one-shot ~80 ms burst at a gun barrel built with a particle one-shot or a flashing quad with a star-burst shader. | rendering |
233
+ | [vfx-smoke](./vfx-smoke/SKILL.md) | Smoke effect — a slow-rising column or puff of soft particles built with a noise + density falloff shader on a quad mesh, GPUParticles3D. | rendering |
234
+ | [vfx-water-ripple](./vfx-water-ripple/SKILL.md) | Water-ripple effect — animated normal-distortion ripples on a water plane (or as a Decal) triggered by impacts. | rendering |
235
+
236
+ ## video
237
+
238
+ | skill | when to use | also |
239
+ |---|---|---|
240
+ | [animated-loop](./animated-loop/SKILL.md) | Generate a short seamlessly-looping video clip — splash background, animated logo backdrop, idle title-screen footage — wired as a looping VideoStreamPlayer. | assets |
241
+ | [cinematic-cutscene](./cinematic-cutscene/SKILL.md) ★ | Generate a non-interactive cutscene — reference-locked look, a 5-10s image-to-video shot, optional TTS dialogue — wired as a fading VideoStreamPlayer. | assets |
242
+ | [trailer-shot](./trailer-shot/SKILL.md) | Generate marketing or trailer footage — slow-mo combat, establishing shots, hero beats, splash screens, pitch-deck B-roll — max punch in 5-10 seconds. | assets |