skills/node-version-compatibility-tester/SKILL.md
自动测试指定技能在不同Node.js LTS版本下的兼容性,支持自动切换Node版本、运行全量功能测试、生成兼容性报告。何时使用:当用户说"测试Node版本兼容性"、"多版本Node测试"、"技能兼容性测试"时。
npx skillsauth add steelan9199/wechat-publisher node-version-compatibility-testerInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
| 用户输入触发词 | AI 执行动作 | | ---------------------------------------------------------- | ------------------------ | | "测试Node版本兼容性" / "多版本Node测试" / "技能兼容性测试" | 按【兼容性测试模式】执行 |
| 步骤 | 执行动作 | 具体命令/操作 |
| ---- | ------------ | ------------------------------------------------------------------------------------------------ |
| 1 | 检查环境 | 运行 RunCommand 执行 nvm list,确认已安装需要测试的Node.js版本 |
| 2 | 确认测试范围 | 用户指定要测试的技能路径和Node.js版本列表(默认测试3个LTS版本:20.20.1, 22.22.1, 24.14.0) |
| 3 | 切换Node版本 | 运行 RunCommand 执行 nvm use <version> 切换到对应Node.js版本 |
| 4 | 执行测试 | 查看目标技能的文档, 统计有多少功能, 对每个功能执行实际运行测试, 参考下方的[如何进行实际运行测试] |
| 5 | 记录测试结果 | 将每个版本的测试结果(成功/失败、错误信息)记录到临时文件 |
| 6 | 生成报告 | 汇总所有版本的测试结果,生成兼容性测试报告 |
禁止使用 node --check 语法检查!必须进行实际功能测试!
| 判定 | 操作方式 | 说明 |
| ------- | ---------------------------------------------- | ------------------------------ |
| ✅ 正确 | 按照目标技能的文档,对每个功能执行实际运行测试 | 真实运行技能功能,验证实际效果 |
| ❌ 错误 | 使用 node --check 对代码进行基础检查 | 仅做语法检查,不验证实际功能 |
步骤 4 的详细执行流程:
读取 {目标技能路径}/SKILL.md
│
├─ 提取功能列表 → 从"触发映射"表或"操作接口"表中获取
│
├─ 提取脚本路径 → 识别 scripts/ 目录下的所有可执行文件
│
└─ 分析凭证需求 → 检查是否需要 token、apiKey、secret 等外部凭证
| 功能类型 | 识别特征 | 测试方式 | | -------------- | --------------------------- | -------------------------- | | 本地处理类 | URL解析、文件转换、格式处理 | 构造示例参数,直接执行测试 | | API调用类 | 需要 token、apiKey、secret | 询问用户是否提供凭证 | | 交互类 | 需要用户输入 | 使用模拟输入执行测试 |
对于每个功能,AI 必须:
仔细阅读目标技能的 SKILL.md 文档
按照文档说明构造测试参数
AskUserQuestion 询问用户按照文档说明的方式执行脚本
node scripts/xxx.js --parameter-file-path params.jsonpython scripts/xxx.py --config config.yamlnode scripts/xxx.js --input "data"记录实际输出:成功/失败 + 错误信息
功能需要凭证?
│
├─ 是 → 使用 AskUserQuestion 询问:
│ "测试 {功能名} 需要 {凭证类型},是否提供测试凭证?"
│ │
│ ├─ 用户提供 → 使用凭证构造参数,执行测试
│ │
│ └─ 用户不提供 → 标记为"跳过(缺少凭证)"
│
└─ 否 → 直接构造测试参数并执行
| 功能类型 | 测试参数构造方式 |
| ---------- | --------------------------------------------------- |
| URL解析类 | 使用示例 URL:{"url": "https://example.com/path"} |
| 文件操作类 | 创建临时文件,传入文件路径 |
| 格式转换类 | 使用示例数据:{"input": "test data"} |
| API调用类 | 需要用户提供真实凭证 |
当目标技能需要外部 API 凭证时,按以下流程处理:
功能需要凭证?
│
├─ 是 → 询问用户:"测试 {功能名} 需要 {凭证类型},是否提供测试凭证?"
│ │
│ ├─ 用户提供凭证 → 使用凭证执行测试
│ │
│ └─ 用户不提供 → 标记为"跳过(缺少凭证)",继续测试其他功能
│
└─ 否 → 直接执行测试
成功时输出示例:
✅ Node.js版本兼容性测试完成
📊 测试结果汇总:
| Node.js版本 | 功能1 | 功能2 | 功能3 | 状态 |
|------------|-------|-------|-------|------|
| 20.20.1 | ✅ 通过 | ✅ 通过 | ✅ 通过 | 完全兼容 |
| 22.22.1 | ✅ 通过 | ✅ 通过 | ✅ 通过 | 完全兼容 |
| 24.14.0 | ✅ 通过 | ✅ 通过 | ✅ 通过 | 完全兼容 |
✅ 结论:该技能完美支持所有测试的Node.js LTS版本
📝 下一步:可以根据测试结果更新技能的环境要求说明
失败时输出示例:
❌ Node.js版本兼容性测试发现问题
📊 测试结果汇总:
| Node.js版本 | 功能1 | 功能2 | 功能3 | 状态 |
|------------|-------|-------|-------|------|
| 20.20.1 | ❌ 失败 | - | - | 不兼容 |
| 22.22.1 | ✅ 通过 | ✅ 通过 | ✅ 通过 | 完全兼容 |
| 24.14.0 | ✅ 通过 | ✅ 通过 | ✅ 通过 | 完全兼容 |
❌ 问题说明:Node.js 20.20.1版本下功能1失败,错误信息:模块找不到
解决建议:检查技能依赖是否兼容Node.js 20.x版本,或者更新依赖配置
| 错误场景 | 错误表现 | 处理方式 |
| ---------------- | --------------------------------- | ------------------------------------------ |
| nvm未安装 | 执行nvm list报错 | 提示用户安装nvm Node版本管理工具 |
| 测试版本未安装 | nvm list中没有用户指定的Node版本 | 询问用户是否安装对应版本,或者更换测试版本 |
| Node版本切换失败 | nvm use <version>返回非零退出码 | 检查nvm配置,重试切换,或跳过该版本 |
| 技能运行报错 | 测试过程中技能执行失败 | 记录完整错误信息,继续测试其他版本 |
本技能是一个通用测试工具,可以测试任意用户指定的技能在不同 Node.js 版本下的兼容性。
用户输入格式:
对技能
{目标技能路径}进行 Node.js 版本兼容性测试
AI 执行流程:
| 步骤 | AI 行为 | 具体操作 |
| ---- | ---------------------- | ----------------------------------------------------- |
| 1 | 读取目标技能文档 | 读取 {目标技能路径}/SKILL.md |
| 2 | 提取功能列表 | 从文档中识别所有功能模块和对应的脚本/命令 |
| 3 | 分析凭证需求 | 判断每个功能是否需要外部 API 凭证 |
| 4 | 询问用户(如需要凭证) | "测试 {技能名} 需要 {凭证类型},是否提供测试凭证?" |
| 5 | 执行测试 | 对每个功能执行实际运行测试(禁止使用 node --check) |
| 6 | 生成报告 | 汇总各 Node.js 版本的测试结果 |
对于每个目标技能,AI 必须:
阅读目标技能的 SKILL.md 文档
不要假设命令格式
构造测试参数
执行真实测试
用户输入:
对技能
skills\wechat-publisher-yashu进行 Node.js 版本兼容性测试
AI 执行:
skills\wechat-publisher-yashu\SKILL.md用户输入:
对技能
skills\feishu-bitable进行 Node.js 版本兼容性测试
AI 执行:
skills\feishu-bitable\SKILL.md,学习调用方式AskUserQuestion 询问用户使用当前项目中的技能
skills\node-version-compatibility-tester, 对当前项目中的技能skills\feishu-bitable进行 Node.js 版本兼容性测试
content-media
自动启停视频课程录制所需的辅助程序。激活条件:用户消息须包含以下关键词之一:`我要录制视频课程`、`开始录制视频课程`、`准备录课`、`视频课程录完了`、`录课结束`、`停止录制`。
content-media
生成扁平的 SVG 图(架构图、中心辐射图、流程图、简易时序图、思维导图、组织架构图、2×2对比矩阵、时间线、循环图、鱼骨图),也支持把已有 SVG 文件转成 PNG 图片。激活条件(满足任一即可):生成类关键词 `画架构图`、`画中心辐射图`、`画流程图`、`画时序图`、`画思维导图`、`画脑图`、`画组织架构图`、`画树形图`、`画对比矩阵`、`画四象限`、`画时间线`、`画循环图`、`画鱼骨图`、`画因果分析图`;转换类关键词`SVG 转图片`、`把 SVG 转成图片`、`把 SVG 转成 PNG`。
testing
检查指定技能文档中的废话文字并输出诊断报告。激活条件:用户消息须包含以下关键词之一:`检查技能废话`、`这个技能文档有没有多余内容`、`清理技能文档废话`、`审查技能文档废话`、`清理技能文档历史说明`。
testing
评审一个技能是否「自包含」——即其知识、经验、规范是否全部内置在技能文件内(SKILL.md + references/),不依赖特定 AI 客户端专有的知识接口命令(如 read_me / modules: / show_widget / Visualizer)去外部拉取,也不硬编码某个 AI 软件的私有路径(如 .workbuddy)。同时检查工具依赖(node、浏览器、命令行)是否仅作为用户自备工具声明、未写死私有路径。当用户要求「评审这个技能是否自包含 / 独立」「检查技能知识是否内置」「审查技能的独立性 / 可移植性」「audit / review a skill for self-containment」时触发。产出评审报告:结论(自包含 / 不独立)+ 问题清单(文件:行号 + 引用的外部依赖 + 为何影响独立性)+ 整改建议。