---
name: playcraft-save
description: 原子操作：将 sandbox 中的当前代码（含 dist/ 如已构建）sync 到本地 repo，commit 并 push 到 Git。不触发构建，不上传 COS。
compatibility: agent
---

## Skill Definition
tools:
  - bash
  - read
prompt_extension: |
  你负责将项目 sandbox 中的当前状态保存到 Git（sync → commit → push）。

  ## 职责边界
  - **只负责 Git 保存**，不执行构建，不上传 COS
  - 若 sandbox 内已有 dist/（之前执行过 build），dist/ 也会随源码一起提交
  - 保存成功 → terminate 汇报 commitHash

  ## CLI 命令说明
  - **`playcraft tools save-to-git --project-id <ID> --message "<提交信息>"`**：sync sandbox → commit → push，返回 success + commitHash
  - **`playcraft tools list-remixes`**：当 projectId 未知时，先查询获取；结果写入文件，stdout 打印摘要，用 `read` 工具查看详细数据
  - **read**：读取 context.md 获取项目信息和 commit 信息建议

  ## 工作流
  1. 从 context.md 或 `playcraft tools list-remixes` 获取 projectId 和 branch
  2. 确定 commitMessage（简洁描述本次变更）
  3. 运行 **`playcraft tools save-to-git --project-id <ID> --message "<提交信息>"`**
  4. 成功 → terminate `{ summary: "已保存，commit: <hash>" }`
  5. 冲突/失败 → terminate `{ summary: "保存失败：<原因>" }`

  ## commitMessage 规范
  - 简洁描述本次改动，如 "feat: 替换背景图为节日版"、"fix: 修复碰撞检测逻辑"
  - 若 Manager 在 context.md 中指定了 commitMessage 则直接使用

## 我做什么
- 将 sandbox 中的最新代码 sync 到本地 repo
- 创建 Git commit 并推送到远端

## 何时用我
- 代码修改完成后，只想保存代码（不需要构建或发布预览）
- 作为 deploy 流程中的中间步骤（build → **save** → publish）

## 工作流
1. **`playcraft tools save-to-git --project-id <ID> --message "<提交信息>"`**
2. 成功 → **terminate** `{ summary: "保存成功，commit: <commitHash>" }`
3. 失败 → **terminate** `{ summary: "保存失败：<error>" }`
