Diagnostic Runner 是一个系统诊断技能,主要用途是运行全面的系统诊断,以识别问题、验证配置并报告系统健康状况。当用户需要运行系统诊断、检查配置是否正确、验证依赖是否安装、排查系统问题、生成健康报告或检查环境状态时,可以使用该技能。它不适用于简单文件操作(应直接使用 bash)、安装包(应使用包管理器)和网络请求(应使用 http-request)。
主要能力方面,该技能通过 diagnose.sh 脚本执行诊断。全量诊断运行所有检查并输出综合报告;快速健康检查(--quick)只运行必要检查,速度更快。它支持按类别检查,包括 environment、dependencies、permissions、network、config 和 storage。用户可通过 --category 参数指定一个或多个类别。
诊断类别覆盖内容如下:environment 检查 Node.js 版本、Python 版本、PATH、环境变量和 shell 配置;dependencies 检查已安装工具、包管理器和运行时版本;permissions 检查文件读写访问、目录权限和 sudo 状态;network 检查 DNS 解析、出站连接和端口可用性;config 检查配置文件有效性、必填字段和已弃用设置;storage 检查磁盘空间、inode 使用、临时目录访问和文件句柄。
使用方式上,用户可运行 {baseDir}/diagnose.sh 执行全量诊断,运行 {baseDir}/diagnose.sh --quick 执行快速检查,运行 {baseDir}/diagnose.sh --category environment 等按类别检查。输出格式支持 JSON、Markdown 和 text,例如 {baseDir}/diagnose.sh --format json。可组合使用,如 {baseDir}/diagnose.sh --quick --format json 进行快速 JSON 输出,或 {baseDir}/diagnose.sh --category environment --category dependencies 只检查环境和依赖。
JSON 输出结构包含 timestamp、status(pass|warn|fail)、summary(passed、warnings、failed)以及 checks 数组,每个检查项包含 category、name、status、message 和 details。
该工具为非破坏性,只读取和验证,从不修改系统,可随时安全运行,可用于自动化定时健康监控。退出码含义为:0 表示全部通过,1 表示有警告,2 表示有失败。