node-version-compatibility-tester
Installation
SKILL.md
🎯 触发映射
| 用户输入触发词 | AI 执行动作 |
|---|---|
| "测试Node版本兼容性" / "多版本Node测试" / "技能兼容性测试" | 按【兼容性测试模式】执行 |
必须测试的三个nodejs版本号
- 20.20.1
- 22.22.1
- 24.14.0
【兼容性测试模式】
执行步骤
| 步骤 | 执行动作 | 具体命令/操作 |
|---|---|---|
| 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配置,重试切换,或跳过该版本 |
| 技能运行报错 | 测试过程中技能执行失败 | 记录完整错误信息,继续测试其他版本 |
如何使用这个 Skill
本技能是一个通用测试工具,可以测试任意用户指定的技能在不同 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 - 从文档中学习每个功能的调用方式
- 切换 Node 版本,按文档说明执行测试
- 记录结果,切换下一个版本继续测试
示例:测试需要凭证的技能
用户输入:
对技能
skills\feishu-bitable进行 Node.js 版本兼容性测试
AI 执行:
- 读取
skills\feishu-bitable\SKILL.md,学习调用方式 - 发现需要飞书 API 凭证,使用
AskUserQuestion询问用户 - 根据用户选择执行测试或跳过需要凭证的功能
用户可以使用类似下面的提示词使用该技能
使用当前项目中的技能
skills\node-version-compatibility-tester, 对当前项目中的技能skills\feishu-bitable进行 Node.js 版本兼容性测试