# R2.2.3 任务报告

## 目标

把本轮形成的 Sub2API runtime 控制、原生数据诊断、客户可见错误溯源和配置调优方法沉淀到 `unidesk-sub2api` skill，避免后续代理重新试探入口、证据口径和下发边界。

## 沉淀内容

### Skill 触发与路由

- 扩展 skill description，使 runtime CRUD、精准批量、临时不可调度、上游错误率、客户可见错误、failover、模型映射和可用模型探测均能触发本 skill。
- `SKILL.md` 将 runtime 控制路由到 `references/codex-pool.md`。
- 客户错误溯源、错误率分析和配置调优路由到 `references/troubleshooting-accounts.md`。
- 同步更新 `agents/openai.yaml` 的简述和默认提示。

### Runtime 控制合同

`references/codex-pool.md` 固化：

- `runtime list|get|models|errors|apply|delete` 的职责。
- `get` 的脱敏 `modelMapping` 与临时不可调度规则可见性。
- `models` 区分配置模型和上游实时模型。
- `temp-unschedulable` 与 `model-mapping` 两类 CRUD。
- 单账号 `--account` 和显式精准批量 `--accounts`，禁止隐式 `all`。
- 批量选择预检、顺序写入、中途 admin API 失败后的逐账号对账要求。
- 默认 dry-run、`--confirm` 写入、紧凑批量输出和 Secret/credentials 脱敏。
- YAML 只保存通用模板和 managed 引用，runtime-manual 账号继续使用 CRUD，不为批量操作强行纳入 YAML。
- 文档命令与当前分支 CLI 不一致时按集成漂移处理，禁止退回手写管理 API。

### 调优分析流程

`references/troubleshooting-accounts.md` 固化八步流程：

1. 用原生 dashboard、availability、concurrency、upstream errors 获取全账号同窗口事实。
2. 用有限 request id 和 `trace` 区分切号成功、候选耗尽、首次无候选和流式 degraded。
3. 临时不可调度规则必须同时有真实状态码与响应关键词证据。
4. 无候选先用原生模型接口核实能力，不猜测近似模型映射。
5. 按 YAML-managed 与 runtime-manual 所有权分别下发，默认一分钟冷却且无新证据不超过三分钟。
6. 不用当前并发快照证明错误时并发，降低并发只做有直接证据的有界对照。
7. 短窗口只做回归，效果等待新的完整窗口并综合请求分母、错误率、规则命中和切号结果。
8. 版本回退必须有源码差异或版本对照证据。

## 实现边界

精准批量和 `runtime models` 已在 `/root/unidesk/.worktree/sub2api-error-tuning` 完成真实 PK01 验证。主工作区当前 runtime CLI 尚未语义吸收这部分实现，且同文件存在并行诊断增强修改，因此本任务没有覆盖主工作区 runtime 源码。skill 已加入 CLI 集成漂移防护，后续必须先完成语义合入，不能手写 Sub2API admin API 绕过。

## 验证

- `quick_validate.py .agents/skills/unidesk-sub2api`：通过。
- `git diff --check`：通过。
- skill 主文件 46 行，三个核心文件合计 207 行，保持渐进披露。
- `agents/openai.yaml` 的 `default_prompt` 显式引用 `$unidesk-sub2api`。
- 未写入账号 ID、供应商名称、当前错误率或其他一次性运行数据。
