# DrowUp 技能执行

Desktop 员工会话上品走 Host 工具 `drowup_listing_run`。`drowup invoke` 仅无 Desktop / Codex 调试。画布、产品库只需要登录态和云端 API，**不要因为桌面客户端没开就拒绝读库**；进店上架要 Desktop。

落到某个**已装员工包**里的脚本技能时，先读那份 `SKILL.md`。说明书写了默认值的参数不要再问。用户已经点名环境、数量和草稿时，读完立刻每个环境一条 `drowup_listing_run`（`env` / `products` / `skill` / 默认草稿 params），不要再问「先开哪一步」。

必填且说明书没有默认值时才问。开窗、拉品和批量由 Host 工具做（登录态 x-token 直打产品库）。不要自己起环境，不要按产品循环调用。AI 走 Desktop 自己的模型或指纹插件本机 complete。

指纹浏览器在桌面客户端里。`env list` 让用户点名（已点名则跳过），然后直接 `drowup_listing_run`。已经打开的环境会复用。

CLI 入口是 `{baseDir}/bin/drowup.exe`，不要再找本机 Node。过渡 CLI 才 `drowup invoke`。

## 开始之前

Desktop 员工：缺登录时停下，让用户头像登录 DrowUp，不要贴 Key。要进店铺后台时桌面客户端必须在跑；没开就提示打开，不要改走别的自动化。可执行上架员工从 Desktop **员工市场**安装。

## 典型工作流

用户说「把这 50 个品上架到这 10 个环境」，这样做：

### 1. 用已装员工包，读说明书

可执行上架走 Desktop 员工市场（Preset Square）装好的 `.dshpreset`。脚本在员工包 `preset/skills/<平台>/`。读该目录 `SKILL.md`。

新的可执行员工：装员工市场 zip；运行时由 Host `drowup_listing_run` require 该包 `scripts/index.cjs`。

### 2. 选品（不要手写 input.json）

```bash
"{baseDir}/bin/drowup.exe" products list --keyword 保温杯 --json
```

单个 `productId` / `--product <id>`。批量 `products: 50`（或 `all`）取产品库当前列表前 N 条。工具在 Host 内用登录态 x-token 直打产品库注入 `ctx.input`（不进对话）。有筛选时先 `products list` 给用户看，确认仍用前 N 条再调用。不要把产品全文读进上下文。

### 3. 每个环境一条 `drowup_listing_run`

```text
drowup_listing_run
  env: 环境名
  products: 50
  skill: dianxiaomi-tiktok-listing
  params: 填完之后=草稿
```

用户点名哪个环境，`env` 就填那个名称。工具会自己开窗。10 个环境 = 10 条同样的调用，不要 50×10 次。同一环境不要并发两条会抢浏览器的脚本。不同环境可以并行。失败后续跑加 `resume: true`。

无 Desktop / Codex 调试时才在该技能目录过渡 CLI：

```bash
"{baseDir}/bin/drowup.exe" invoke scripts/index.cjs --env 环境名 --products 50 --params 填完之后=草稿 --json
```

选择器变了或弹窗挡住时：改员工包里的技能文件，再重新跑。不要另起一套自动化去连指纹环境。

## 命令速查

```
drowup_listing_run  env / products|productId / skill / params / resume
"{baseDir}/bin/drowup.exe" invoke <脚本.cjs> --env 环境名 [--product|--products|--input] [--run-dir] [--params k=v] --json
"{baseDir}/bin/drowup.exe" ai ask "给商品属性「材质」填一个短值" --context-json "{\"标题\":\"纯棉T恤\"}"
```

`ai ask` / `ctx.ai` 打 Desktop 自己的模型或指纹插件本机 complete。

## 绝对不要做的事

- **不要**调用本机 `/skill/run`。
- **不要**先 `env start` 再上品；`drowup_listing_run` 的 `env` 会自己开窗。
- **不要**按产品循环调用或手写一批 `input.json`。
- **不要**把上架拆成 10/20/30 多次。有 `scripts/index.cjs` 就每个环境一条跑完；没有就停，去补入口，不要另起一套自动化。
- **不要跳过必填参数。** `skill.json` 里 `required: true` 且没有默认值的项，必须问用户。有默认值的不要再问。
- **不要把产品完整资料读进上下文。**
- **不要把访问密钥打进日志或回复里。**
- **不要向用户要 CDP，不要扫描端口。**
- **不要**让用户去设置页贴 Key，不要网页 CLI 生成 Key 当 Desktop 员工登录。
