---
name: start-local-game-server
description: >-
  SVN-updates D:\proj\svrbin then starts the local game server via
  07_run_game_server.cmd. Use when the user asks to start the local server
  (e.g. 「帮我启动本地服务器」「启动本地服」「启动 game server」「跑本地服务器」).
---

# Start Local Game Server

在 `D:\proj\svrbin` 按固定顺序执行：先 `svn update`，成功后再启动 `07_run_game_server.cmd`。前一步未完成或失败时，不得启动下一步。

## 工作目录

```
D:\proj\svrbin
```

## 执行步骤（严格串行）

用 Shell，通过 `working_directory` 设为上述路径。两步分别调用，**禁止**并行。

### 1. SVN 更新

```powershell
svn update
```

- 等命令结束；检查退出码。
- 非 0：停止，把 stdout/stderr 摘要给用户，**不要**启动服务器。

### 2. 启动游戏服

仅在步骤 1 成功后执行。

`07_run_game_server.cmd` 会拉起长期运行的 Java 进程（`gameServer`），**不会自行退出**。因此：

```powershell
cmd /c 07_run_game_server.cmd
```

- 使用 `block_until_ms: 0` 在后台启动，不要无限阻塞等待进程结束。
- 启动后做一次冒烟检查（读终端输出 / 确认进程已起来）；若立刻报错退出，停止并报告日志摘要。
- 不要对正在运行的游戏服再跑一遍启动命令，除非用户明确要求重启（可先提示已有实例）。

## 完成标准

向用户简要说明：

1. `svn update` 结果摘要（revision / 有无更新或冲突）
2. `07_run_game_server.cmd` 已后台启动（或启动失败原因）

## 注意

- Windows 下用 `cmd /c 07_run_game_server.cmd`，保证相对路径 `./gameServer` 正确。
- 不要跳过 `svn update`。
- 不要在失败后自动 `svn revert`，除非用户明确要求。
- 本 skill 只启动 **game server**（`07_run_game_server.cmd`），不自动拉起 db/center/match 等其它服；若用户要整套本地服，再按其指示处理。
