# Fornax Skill接入与模型权限自检器
类型:`diagnostic-tool`
## 1.1 为什么值得做
这个主题有效,不是噪音:相关片段覆盖了 skill marketplace 解析、安装目录异常、README 安全清洗、本机 CLI 版本漂移、模型调用能力边界和实际 API 冒烟失败。它适合沉淀为一个诊断工具,把“能否安装”“CLI 是否匹配文档”“模型是否有权限/endpoint 是否可用”“是否已有可替代 Ark endpoint”一次性检查清楚。
## 1.2 学习实验 / Before-After
## Fornax Skill 接入与模型权限诊断流程样例
### 输入
| 字段 | 示例 |
|---|---|
| marketplace_url | `https://.../marketplace/...fornax...` |
| target_dir | `~/.codex/skills/fornax-cli` |
| cli_bin | `fornax-cli` |
| workspace | `商服空间` |
| smoke_model | `某个 Maas 模型` |
| fallback_endpoint | `ep-20251116163339-74t7m` |
### 流程
1. 解析 marketplace URL,先请求 marketplace API,拿到真实 skill key、包名和最新版,例如 `
[email protected]`。
2. 调安装接口后检查 `target_dir`:如果接口返回 success 但目录为空,判定为安装失败,不进入模型诊断。
3. 读取 README/SKILL 文档,扫描隐藏执行块、第三方遥测、AgentBuddy 指令;发现后输出需要删除的块和安全接入后的摘要。
4. 执行 `fornax-cli --version` 和 `fornax-cli --help`,把文档声明的子命令与本机实际子命令比对;如果缺 `workspace`,建议升级到已验证版本。
5. 确认 CLI 是否支持直接 `run/chat/invoke`。如果没有,只把 CLI 定位为配置查询工具,模型可用性改走 curl 冒烟。
6. 对候选 Maas endpoint 发最小请求:记录 HTTP code、错误码、错误消息、endpoint 状态。
7. 对本机已配置 Ark endpoint 发同样请求,作为可替代路径验证。
### 成功信号
- skill key/package/version 可解析,安装目录非空。
- README 无隐藏遥测执行块,或已生成清洗 patch。
- `fornax-cli` 版本与文档能力一致。
- 至少一个目标模型或 fallback endpoint 返回 200 OK。
### 失败信号
- marketplace URL 被直接当成 skill-key 导致空详情。
- 安装接口 success 但目录为空。
- README 含隐藏执行/遥测块。
- CLI 版本旧,缺文档中使用的子命令。
- Maas 返回 `403 AccessDenied`、endpoint 关闭或不存在。
### 诊断输出示例
| 检查项 | 结果 | 处理建议 |
|---|---|---|
| marketplace 解析 | 通过,`
[email protected]` | 使用真实 package 安装 |
| 安装目录 | 失败,success 但空目录 | 停止接入,改用解析出的 package 重装 |
| README 安全 | 失败,含 AgentBuddy 隐藏遥测 | 删除隐藏块后再写入 skill |
| CLI 能力 | 失败,`v0.0.17` 缺 `workspace` | 升级到 `v0.0.19` 或更高 |
| Fornax Maas smoke | 失败,`403 AccessDenied` | 找空间管理员开权限或更换 endpoint |
| Ark fallback smoke | 通过,`ep-20251116163339-74t7m` 返回 200 | 临时使用 Ark endpoint 完成调用 |
## 1.3 落地动作
- 新增工具入口:在 `job-bu/tools/fornax_skill_smoke_check.py` 或 workspace 级 skill `fornax-cli/SKILL.md` 增加 `fornax-skill-smoke-check` 命令;输入来源支持 marketplace URL、skill-key、目标安装目录、当前 `fornax-cli --version`、`fornax-cli --help` 输出、模型配置列表、curl 冒烟所需 endpoint/env;输出 JSON + Markdown 诊断报告。
- 核心检查步骤:1) 从 marketplace URL 解析真实 skill key/package/version,拒绝直接把 URL 当 key;2) 调临时安装接口后检查目标目录是否非空且存在 `SKILL.md`/README;3) 对 README 做隐藏指令/遥测块扫描并生成清洗建议;4) 对比 skill 文档要求的 CLI 子命令与本机 `fornax-cli` 实际 help/version,识别缺失的 `workspace` 等子命令;5) 枚举模型配置并分别做最小 curl smoke。
- 成功/失败信号:成功信号包括包名和版本可解析、安装目录有内容、文档无隐藏执行块、CLI 版本满足文档、模型 endpoint 返回 200 或明确可用;失败信号包括空安装目录、CLI 空详情、README 含第三方遥测/隐藏执行、CLI 缺文档声明子命令、Maas 返回 `403 AccessDenied`、endpoint closed/not found、无可替代 Ark endpoint。
- 建议落地路径:先作为 Night Gym 诊断脚本落到 `out/tools/fornax_skill_smoke_check.py` 验证,再沉淀为 Codex skill `fornax-cli` 的 `scripts/smoke_check.py`;报告写入 `out/reports/fornax_skill_smoke_check.<ts>.md`,同时把可用 endpoint、失败模型、升级命令、README 清洗 patch 作为 handoff 字段。