# mode=apply：最小化创建插件工程

## A1：执行 lpm create

```bash
lpm create \
  --site-domain <siteDomain> \
  --name "<工作名称>" \
  --app-type <appType> \
  --force
```

> 参数来源：
> - `<siteDomain>` 来自 Phase 0 采集（含协议，如 `https://meego.feishu-boe.cn`）
> - `<工作名称>` 来自 plan P2 派生
> - `<appType>` 来自 plan P1.5 判定，**必填**，取值 `normal` / `ai_node` / `ai_field` 之一。**写错就要重建工程**——若上下文 `appType` 变量没值，回到 plan P1.5 重判，不得猜默认值。
> - `--force` 跳过当前目录已是插件仓库时的确认提示，确保 AI 可非交互执行
> - 不传 `--description` / `--detail-description`，这些在 polish phase 阶段填充

该命令会：
1. 调用 API 创建插件，获取 pluginId + pluginSecret
2. 自动执行 init 初始化工程（拉模板 + 写入 plugin.config.json + npm install）

### 成功

```
🍻🍻🍻 Create successfully! Plugin ID: MII_xxx. Local project directory: my-plugin.
```

从日志逐字抓 `Plugin ID:` 与 `Local project directory:` 两值（目录名由 CLI 内部派生，**不可凭工作名拼**），分别记到对话上下文的 `pluginId` / `projectDir` 变量上。**不**写 `.lpm-cache/state.json`——create skill 与 workflow 状态解耦，state.json 由 workflow Phase 1.2 统一首次落盘。

### 失败处理

| 错误类型 | 处理方式 |
|---------|---------|
| API 超时 | 等待 5s 后重试一次 |
| 权限不足 | 逐字转呈 CLI stderr 登录指引，由用户执行 `lpm login` 重新授权后重试 |
| 名称已存在 | 提示用户���改��称，重新执行 A1 |
| npm install 超时 | 等待 30s 后重试一次（最多 2 次） |
| 未知错误 | 展示原始错误，终止并告知用户 |

## A2：输出

```
✅ 插件工程创建成功
   pluginId: MII_xxxxxxxxx
   工程目录：my-plugin/    ← 从 A1 日志原样抓
   下一步：切 cwd 到工程目录（A3）
```

## A3：切 cwd 到新工程（HARD GATE）

`lpm create` 在父目录生成子目录、跑完后 cwd 仍在父目录；后续 `lpm` 命令必须在子目录内才不会报"非插件目录"。create 完成前必须把 cwd 切进去并验证，编排方（workflow）和独立调用都依赖这一步落定。**单条 bash call 跑下面组合命令**（拆开多 call 笨 AI 易丢 cd）：

```bash
cd "<projectDir>" && pwd && test -f plugin.config.json && echo "CWD_OK" || echo "CWD_FAIL"
```

- `CWD_OK`：把 `pwd` 输出（绝对路径）记到对话上下文的 `projectRoot` 变量上，create 完成
  - 编排方/用户继续后续 `lpm` 命令时统一带 `--cwd "<projectRoot>"` 前缀（不依赖 cwd 持久；详见 [workflow-overview.md「cwd 锚定规则」](workflow-overview.md) 与 [`shared.md` 执行约定](shared.md)）
  - **不**写 state.json——同 A1，create skill 不碰 workflow checkpoint
- `cd: No such file or directory`：A1 抓的目录名不对，回 A1 重读日志，不得继续
- `CWD_FAIL`：create 未落盘（A1 没真正生成子目录），统一回 A1 失败处理表排错，不得继续；**不要**在父目录跑 mode=verify——verify 假设已在 plugin-dir，跨目录跑会全 fail
