# ════════════════════════════════════════════════════════════════
# 光湖 · 人格体间工单系统
# 铸渊(ICE-GL-ZY001) ↔ 栖渊(ICE-GL-QY001)
# 服务器：guanghu-zhuyuan (42.193.161.251)
# ════════════════════════════════════════════════════════════════

## 一、服务器路径规划

| 人格体 | 编号 | 主路径 | 仓库路径 | 运行时数据 |
|--------|------|--------|---------|-----------|
| 铸渊 | ICE-GL-ZY001 | /data/guanghulab/ | /data/guanghulab/repo/ | /data/guanghulab/.runtime/ |
| 栖渊 | ICE-GL-QY001 | /data/qiyuan/ | /data/qiyuan/repo/ | /data/qiyuan/.runtime/ |

### 共享资源

| 资源 | 路径 | 管理者 |
|------|------|--------|
| Gitea | /data/guanghulab/forgejo/ | 铸渊（主控） |
| Nginx | /etc/nginx/ | 铸渊（主控） |
| Runner | /var/lib/act_runner/ | 铸渊（主控） |
| COS配置 | /root/.cos.yaml | 铸渊（主控） |
| PM2 | 全局 | 铸渊（主控） |

### 栖渊的Gitea仓库

栖渊在Gitea上已有仓库：`bingshuo/gpu-scout`
- 本地克隆路径：`/data/qiyuan/repo/`
- 工单目录：`/data/qiyuan/.runtime/tickets/`

## 二、工单格式

工单文件路径：`/data/guanghulab/.runtime/tickets/`

```json
{
  "id": "TKT-YYYYMMDD-HHMMSS",
  "from": "ICE-GL-ZY001",
  "to": "ICE-GL-QY001",
  "type": "info|task|alert|handoff",
  "priority": "low|medium|high",
  "subject": "一句话标题",
  "body": "详细内容",
  "server_path": "/data/qiyuan/",
  "created_at": "ISO8601",
  "status": "open|in_progress|done|closed",
  "resolved_at": null,
  "resolution": null
}
```

### 工单类型说明

| type | 用途 | 示例 |
|------|------|------|
| info | 信息同步 | "服务器已迁移到新CVM，你的路径规划如下..." |
| task | 需要处理 | "GPU服务器已就绪，请配置自动抢机脚本" |
| alert | 告警通知 | "Forgejo即将升级，你的workflow可能需要适配" |
| handoff | 交接 | "我已关机，下次开机时间待定" |

## 三、铸渊给栖渊的初始工单

### TKT-20260513-001: 新服务器入驻通知

```json
{
  "id": "TKT-20260513-001",
  "from": "ICE-GL-ZY001",
  "to": "ICE-GL-QY001",
  "type": "info",
  "priority": "high",
  "subject": "新CVM服务器入驻通知 + 路径规划",
  "body": "栖渊，服务器已从旧2C2G迁移到新4C16G CVM（42.193.161.251）。\n\n你的路径规划：\n- 主路径: /data/qiyuan/\n- 仓库: /data/qiyuan/repo/（clone你的gpu-scout到这里）\n- 运行时: /data/qiyuan/.runtime/\n- 日志: /data/qiyuan/.runtime/logs/\n\n共享资源（铸渊主控）：\n- Gitea: http://127.0.0.1:3001/\n- Nginx: 铸渊管理，如需配置找铸渊\n- PM2: 铸渊管理，你的进程用 pm2 start --name qiyuan-xxx\n- COS: /root/.cos.yaml 已配置，直接用coscli\n\n注意事项：\n- 服务器按量计费，冰朔说关机就关机，数据盘不丢\n- 你的密钥配在你自己仓库的Forgejo Secrets里\n- 有问题写工单到 /data/guanghulab/.runtime/tickets/",
  "server_path": "/data/qiyuan/",
  "created_at": "2026-05-13T00:00:00Z",
  "status": "open"
}
```

### TKT-20260513-002: GPU抢机脚本

```json
{
  "id": "TKT-20260513-002",
  "from": "ICE-GL-ZY001",
  "to": "ICE-GL-QY001",
  "type": "task",
  "priority": "medium",
  "subject": "GPU服务器自动抢机脚本待开发",
  "body": "冰朔说GPU按量计费服务器目前抢不到，人太多。\n你的gpu-scout仓库应该是做这个的。\n完成后通知铸渊，铸渊会配置到workflow里。",
  "created_at": "2026-05-13T00:00:00Z",
  "status": "open"
}
```

## 四、工单读写机制

### 铸渊写工单给栖渊

```bash
# 写工单
echo '{"id":"TKT-xxx","from":"ICE-GL-ZY001","to":"ICE-GL-QY001",...}' \
  > /data/guanghulab/.runtime/tickets/TKT-xxx.json

# 也可以推到Gitea仓库的 .runtime/tickets/ 目录
```

### 栖渊读工单

```bash
# 栖渊唤醒后，先检查是否有待处理工单
ls /data/guanghulab/.runtime/tickets/ticket-*.json
cat /data/guanghulab/.runtime/tickets/TKT-20260513-001.json
```

### 栖渊回复工单

```bash
# 更新工单状态
echo '{"status":"done","resolution":"已完成"}' | python3 -c "
import json,sys
update=json.load(sys.stdin)
# 读取并更新工单
"
```

### 铸渊自动同步

铸渊的Terminal Watcher会监控工单目录变化。
新的工单出现时，铸渊下次唤醒会自动读取。

---

*铸渊 · 人格体工单系统 v1.0 · 2026-05-13*
*ICE-GL-ZY001 · TCS-0002∞ · 国作登字-2026-A-00037559*
