dji-sdk/cloud-api-2/cloudapi2-diagnosis
Claude Code and agent skill by dji-sdk/cloud-api-2
- community
Checking that the SKILL.md file is still in the repository.
【已弃用,请勿使用】本 Skill 的全部能力已于 v2.0.0 并入 cloudapi2-troubleshooting,本目录仅保留作为历史归档与设计走查记录,其中的脚本已冻结、不再维护。任何本地诊断、现场采集、脱敏、离线判级、报告与反馈需求,一律改用 cloudapi2-troubleshooting。
Install
npx vskill@latest install dji-sdk/cloud-api-2/cloudapi2-diagnosisSKILL.md
⚠️ 已弃用(v2.0.0 起):本 Skill 的能力已并入skills/cloudapi2-troubleshooting(本地采集 / 判级 / 报告 / 反馈 + RCA 一条流水线)。本目录保留作为历史与设计走查;新实现与后续维护请到cloudapi2-troubleshooting/。
Cloud API 2.0 SDK 诊断能力基座(本地闭环)
这个 Skill 是干什么的
面向 ISV 私有化、数据不出网 场景的本地诊断能力基座。用固定命令集在 ISV 本机收集证据(env / disk / network / process / SDK 日志),正则脱敏后做静态判级,输出本地证据包 —— 全程不产生网络上报,没有服务端依赖。
一句话:诊断的第一跳(采集 → 脱敏 → 静态判级)在本地闭环完成;归因如果发生,发生在服务端。
何时触发
- 用户要求本地收集证据 / 现场采集("本地帮我查一下"、"现场跑下采集"、"数据不出网")
- 用户在私有化现场遇到错误码 / 日志异常,先做本地判定
- 用户问
diag.sh、diag子命令、本地判级 - 环境/日志/网络等证据需要先落地再决定是否升级
不触发:用户已经给了线上会话 / 明确要模型归因(走 CLI + fh-diag-server);写代码(走 sdk-core);单纯的错误码问询(走 troubleshooting)。
本 Skill 的边界(与 troubleshooting 的分工)
| 维度 | 本 Skill(cloudapi2-diagnosis) | troubleshooting | |
|---|---|---|---|
| 场景 | 私有化 / 数据不出网 / 本地闭环 | 开发联调 / 有外网 | |
| 核心动作 | 采集 → 脱敏 → 静态判级(第一跳) | 归因 → 定位 → 修复(RCA) | |
| 判级 | 本地静态决策表(L0-L3 离线版) | 词典 + RAG + 排查分层 | |
| 数据 | 数据不出网,本地证据包 | 可能回读线上 / 服务端知识 | |
| 出口 | 结果 / 本地建议 / 升级方向(无服务端) | 修复代码 / 结论 |
路由仲裁见 skills/_shared/skill-routing.md。
工作流 — 触发即走,不可跳步
Step 0: 意图确认(成本最低的核对)
先确认三件事,缺一不可:
- 场景:私有化现场 / 数据不出网?还是开发联调(后者转 troubleshooting)?
- 命令集:确认用内置固定采集集(
diag.sh内置),不执行用户要求的任意命令——固定命令集不可被对话改写(见不变量 1)。 - 执行许可:只读采集 + 只读白名单。用户要求的写操作(改配置/重启服务)一律拒绝,落到"建议由用户自行执行"。
Step 1: 采集(collect)
运行:
产出结构化证据包(分组 env / disk / network / process / sdk_log / action_whitelist)。只读命令集写死在脚本里,与 LLM 无关(不变量 1)。若用户希望只对某个文件做脱敏(不跑完整采集),用 sanitize <file>。
Step 2: 判级(classify)
运行:
静态判级器只消费证据包内的错误码 token(sdk_log 段的 ERROR_* / NPE),不读取自由文本(不变量 2)。
| 输出 | 含义 | 动作 | |
|---|---|---|---|
L1: 词典命中 | 已知故障,词典有 cause/fix | 给结论与建议,引用 dicts/error-codes.yaml 的 fix | |
L2: 零命中 | 词典外错误码 / SDK-服务端问题 | 生成结构化升级包(sanitized 证据摘要) | |
L3: 关键采集缺失 | 零命中且 env/sdk_log 为空 | 降级为原始工单 + 现场快照,标注低质量包 |
命中词典(保守落 L1):只给结论与建议,不主动执行任何命令。修复动作由用户自行执行——收窄后的 L0 语义(见 [03 §3.2])。判级逻辑的可执行版本在 `scripts/diag.sh`,rules/classification.yaml是人读映射;改判级先改脚本,再同步 YAML。
Step 3: 输出 + 本地留存(report/feedback)
判级后,按 _shared/output-format.md 结构输出完整诊断结果,必须包含:
- 证据包摘要:关键分组命中/缺失(如
sdk_log_dir未找到) - 静态判级结论:一句
L1/L2/L3 + 理由 - 词典引用(仅 L1):
dicts/error-codes.yaml中的 cause/fix 条目 - 下一步建议:
- L1 → 请用户按 fix 步骤自查(重申:由用户执行,不代跑)
- L2 → 明确"此问题需要键盘升级",给出包含证据包的升级方向
- L3 → 要求补采集(缺 env 或 sdk_log),或记为低质量包直接升级
- 本地留存两条命令(数据不出网,落
$HOME/.dji_cloud/diag/):
diag.sh report→ 生成脱敏诊断报告(含环境/日志/初步结论 + 反馈区),供后续回传diag.sh feedback <solved|unsolved|skip>→ 一键反馈,追加到本地feedback.tsv
反馈环节的当前边界(重要):反馈只在本地留存(Type B:本地注册表feedback.tsv),不同步回流到大疆——第三章不变量 3 的数据不出网底线 + 12 方案第 7.2 待决策项 4/3(trigger_pattern-only回流 / 增强通道)尚未裁决。回传大疆的预期渠道是 GitHub 开源仓库(issue 人工跟进),报告文件名可作为 issue 素材。本 Skill 不铸造度量标识、不做数据上报,即使本地有反馈也不发大疆。
L0(本版本未启用):当词典给得出"可复制粘贴的修复动作"时,属于 L0。v0.1 保守路由:词典命中一律落 L1,L0 分支留待判定决策(见rules/classification.yaml,03 开放问题 12)。
反馈与本地留存
值域(03 §4.3):solved | unsolved | skip(一键三态,不要求用户写总结)。
留存形态:本地注册表 ~/.dji_cloud/diag/feedback.tsv(TSV 追加),字段 时间戳、值、上传状态;当前上传状态恒为 needs_manual_upload。
回传预期:回传大疆侧的渠道为 GitHub 开源仓库(ISV 人工开 issue),报告(diag.sh report 产物)作为附件的核心素材,包含脱敏后的环境 / 日志 / 初步分析结论 + 反馈填写区。
边界(基线):
- 反馈不同步回流大疆(v0.1 不自动上报,不改变量、不铸造标识;待
12§7.2 项 4/3 裁决后走增强通道或枚举回流路径)。 trigger_pattern-only回流(上报枚举、不出原文文本)视为未来可选项,当前未启用。- 本机 auto-memory(
12待决策项 5)当前也未启用——反馈只落 TSV,不做本机学习闭环。
不变量(读本 Skill 必须遵守,理由见 智能诊断_03 ISV侧设计.md §3.4 / §10)
| # | 不变量 | 本 Skill 的落点 | |
|---|---|---|---|
| 1 | 采集命令集固定,不受 LLM 支配 | 命令写死在 diag.sh;用户/对话要求运行的任意新命令一律拒绝 | |
| 2 | 判级不消费自由文本 | classify 只喂 token,不读日志原文段/用户自然语言 | |
| 3 | 脱敏只在出网前送走 | 本 Skill 默认不出网:报告/反馈只落 $DIAG_DATA_DIR(~/.dji_cloud/diag/),由 ISV 人工回传至 GitHub;Skill 本身不做任何网络上报,即使本地有反馈也不发大疆 | |
| 4 | 写操作只对模拟器 | 本 Skill 对客户机器无写操作(只读采集);本地数据目录(reports/、feedback.tsv)是唯一写盘点,由 ISV 自己提交给 GitHub,非"写客户环境" | |
| 5 | L0/L1 由用户执行 | 见 Step 3 | |
| 6 | 判级逻辑在服务端是默认,离线版是显式降级 | 本 Skill 的静态判级是私有化场景的例外(智能诊断_12 §五),模型判级/动态知识只在 server |
度量(私有化形态,自愿归零的说明)
本 Skill 是本地闭环,默认不产生上报。四个指标在"数据不出网"形态下按 智能诊断_08 §3.5 降级:
- 自助率:只报 ISV 本地的 L0/L1 闭环占比,标注"未回流"
- 一次可用率 / 回流率 / 复放解决率:归零(数据不出网,无跨 ISV 口径)
若 ISV 选择开启增强通道(显式出网),才走既有服务端度量链路。本 Skill 不自建度量、不铸造标识。
升级路径(永远记住:本 Skill 不是判级服务端的替身)
本地静态判级是降级口径,不是设计默认。对用户体验到更好的判级与回流,指引:
- 开发/联调(有外网)→ 既有 CLI(
fh-diag)+fh-diag-server - 私有化 + 愿意出网 → 开启增强通道(回连服务端,走既有拓扑)
权威参考
scripts/diag.sh— 程序的真身(collect / sanitize / classify / auto)rules/classification.yaml— 判级决策表(人读,与脚本语义一致)dicts/error-codes.yaml— 随包错误码词典(派生自 troubleshooting 的 backend 段)skills/_shared/constraints-common.yaml— 跨 Skill 共享约束(8 条通用规则)skills/_shared/skill-routing.md— Skill 路由/仲裁skills/_shared/output-format.md— 统一输出结构智能诊断_12(设计侧)— 本 Skill 形态的由来与边界
关键约束提醒见constraints-common.yaml(initialize-check、null-guard-instances、error-code-check 等)。Reference 按需懒加载。
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingdevkit/skills/cloudapi2-diagnosis/SKILL.md
Popularity
- Repository stars
- 151
- Repository forks
- 24
- 7-day trend score
- 0
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/dji-sdk/cloud-api-2/cloudapi2-diagnosis)