---
name: playcraft-create-remix
description: 根据用户描述创建新 Remix 变体，支持两种来源：基于推荐模板（主分支）或基于已有变体（任意 remix/ 分支）。创建后用 display_ui 展示 RemixCreatedCard。适用于「做一个打砖块游戏」「创建平台跳跃广告」「基于这个变体再做一个」等明确创作意图的场景。
triggers: 做游戏,创建游戏,创建 Remix,打砖块,平台跳跃,可玩广告,帮我做,基于变体,再做一个
compatibility: agent,opencode
---

## Skill Definition
tools:
  - bash
  - display_ui
  - read
prompt_extension: |
  你是游戏创作执行助手。根据用户意图选择来源（模板或已有变体），通过 CLI 命令创建新变体，完成后立刻调用 display_ui 展示 RemixCreatedCard，最后 terminate 返回结果摘要。

## 核心概念

**Remix（变体）= 在某个项目上，从一个已有分支拉取的新 `remix/` 分支。**

- 新分支永远是 `remix/` 前缀，永远不是 `main`
- 来源只有两种，本质都是「指定一个已有分支作为基础」：
  1. **基于主分支**（模板或普通项目）：`projectId` 为项目 numericId，`sourceBranch` 省略（默认 `"main"`）；推荐模板可通过 `playcraft tools list-templates` 获取
  2. **基于已有变体**：`projectId` 为变体所在项目的 numericId，`sourceBranch` 为已有的 `remix/xxx` 分支名

## ⚠️ 重要：何时用我（仅用于创建，不用于展示）

- ✅ 用户说「做一个打砖块游戏」「帮我做一个平台跳跃广告」「从推荐里选一个创建」
- ✅ 用户说「基于这个变体再做一个」「复制当前变体」（此时 sourceBranch = 当前分支名）
- ❌ 不适用于「有哪些模板」「能做什么类型」等纯展示需求 → 那种情况 Manager 直接调 `show_template_cards`

## 工作流

### 情况 1：基于模板创建
1. 运行 `playcraft tools list-templates` 获取推荐 Remix 列表（禁止使用写死的列表）；结果写入文件，stdout 打印摘要，用 `read` 工具查看完整结果
2. 匹配用户描述，选出最合适的模板 `projectId`
3. 运行 `playcraft tools create-remix --project-id <ID> --name "<名称>"`，其中：
   - `--project-id`：模板的 numericId（来自 list-templates）
   - `--name`：根据用户描述自动生成简短变体名称，**不要询问用户**，直接生成
   - 可选 `--source-branch main`（默认即为 main）

### 情况 2：基于已有变体创建
1. 从会话上下文中获取当前项目 `projectId` 和源变体分支 `sourceBranch`
2. 运行 `playcraft tools create-remix --project-id <ID> --name "<名称>" --source-branch "<分支名>"`，其中：
   - `--project-id`：变体所在项目的 numericId
   - `--source-branch`：已有变体的分支名（如 `"remix/easy-20250101-abc"`）
   - `--name`：新变体的显示名称

### 通用步骤（两种情况均需）
4. 调用 `display_ui` 展示结果卡片（**创建成功后必须调用，不要跳过**）：
   ```
   display_ui({
     component: "RemixCreatedCard",
     props: { projectId: <number>, projectName: "<string>", branchName: "<string>" }
   })
   ```
5. 调用 `terminate` 返回摘要（projectId、branchName、projectName）

## 示例

- 用户：「做一个打砖块的可玩广告」→ `playcraft tools list-templates` → 选含 breakout/brick 标签 → `playcraft tools create-remix --project-id <ID> --name "<名称>"` → display_ui(RemixCreatedCard) → terminate
- 用户：「从零开始做一个自定义游戏」→ `playcraft tools list-templates` → 选 empty/custom/blank 的 Remix → `playcraft tools create-remix --project-id <ID> --name "<名称>"` → display_ui(RemixCreatedCard) → terminate
- 用户：「基于这个困难模式变体，再做一个简单模式」→ `playcraft tools create-remix --project-id <ID> --name "简单模式" --source-branch "remix/hard-..."` → display_ui(RemixCreatedCard) → terminate
