# 采知连：明确不提供的能力与替代方案

## 何时使用

- 用户要求「列一下有哪些环境 / 看看当前配置 / 重新加载配置 / 切换到测试环境」这类系统管理能力。
- 用户用本 Skill 不提供的操作名来调用，但 CLI 里没有对应 operation。
- `caizhilian operations` 的 `withheldOperations` 里给出了名称与理由，需要向用户解释替代方案。

## 输入要点

### 4 个不提供的系统操作

以下 4 个系统管理能力**没有**做成业务 operation。原因相同：环境、配置与登录态由 `weaver-work-cli` 框架统一管理，业务模块不自建一套配置与登录缓存。

| withheld 名称 | 不提供的原因 | 替代命令 |
| --- | --- | --- |
| `caizhilian.system.list-systems` | 列多环境配置与登录态 | `weaver-work-cli config list`、`weaver-work-cli e10 auth status`；连通性自检用 `weaver-work-cli --json caizhilian health` |
| `caizhilian.system.get-loaded-config` | 输出本地配置生效内容（含凭证掩码、下载目录） | `weaver-work-cli config list`；不在业务模块内暴露配置快照 |
| `caizhilian.system.reload-config` | 重新加载本地配置 | 无需替代：CLI 每次进程启动即读取框架配置，没有进程内缓存需要刷新 |
| `caizhilian.system.switch-config` | 在多套环境配置间切换 | `weaver-work-cli config set ...`、`weaver-work-cli e10 auth login --base-url <域名>` |

系统管理能力只保留 `caizhilian.system.health`：探测接口连通性与登录态，返回
`{ environment, healthy, base_url, url, status_code, business_code, diagnosis, elapsed_ms }`；
本地无登录态时抛 `authentication/session_unavailable`。

## 命令

Windows PowerShell：

```powershell
weaver-work-cli caizhilian operations
weaver-work-cli --json caizhilian health
weaver-work-cli config list
weaver-work-cli e10 auth status
```

macOS/Linux（bash/zsh）：

```bash
weaver-work-cli caizhilian operations
weaver-work-cli --json caizhilian health
weaver-work-cli config list
weaver-work-cli e10 auth status
```

`caizhilian operations` 的返回里带 `withheldOperations`，每项是 `{ name, reason }`，可以直接把 `reason` 转述给用户。

## 输出处理

- 用户点名要 withheld 能力时：**不要报「做不到」就结束**，要给出上表里的替代命令，并说明「环境与登录态由 weaver-work-cli 框架统一管理」。
- 用户用未提供的旧操作名来调用时，用 `caizhilian operations` 的 `sourceOperation` 字段反查对应的 CLI operation 名，再按 `write-protocol.md` 走确认链。
- `caizhilian health` 的 `diagnosis` 字段是逗号分隔的判定项：`ok`、`network_error`、`http_error`、`http_status_mismatch`、`business_code_mismatch`、`request_failed`。非 `ok` 时把 `status_code`、`business_code`、
  `elapsed_ms` 一起给用户。

## 注意

- 不要为了让用户满意而**临时补出** withheld 操作，也不要用 curl / 脚本绕过 CLI 去读框架配置或登录态。
- 不要读取、列出、打印或解析 CLI runtime 内部的登录凭据文件；认证相关一律通过 `weaver-work-cli auth` / `weaver-work-cli e10 auth` 命令。
- 范围外的能力**不要**用相近的 operation 去近似模拟（例如用附件上传去替代「附件全局设置」）。
- 如果用户确实需要范围外能力，回复「该能力暂未提供，需要单独评估支持」，不要在本模块里扩权。

## 失败处理

| error.type / subtype | 触发场景 | 处理 |
| --- | --- | --- |
| `validation/operation_unknown` | 调用了 withheld 或范围外的 operation 名 | 用 `caizhilian operations` 校对，按本文件的替代命令回复用户 |
| `authentication/session_unavailable` | `caizhilian health` 时本地无登录态 | 引导用户执行 `weaver-work-cli e10 auth login`，不要猜域名 |
| `api/http_error` / `api/business_error` | health 探测返回非成功码 | 把 `diagnosis`、`status_code`、`business_code` 交给用户 |
| `network/*` | health 探测网络失败 | `retryable=true` 时最多重试一次 |
