skills/js-error-fixer/SKILL.md
自动检查和修复 JavaScript 文件的语法错误、类型错误等问题。支持单个文件或整个文件夹批量处理。何时使用:当用户需要检查 JS 文件错误、修复 JS 语法问题、或批量处理 JS 文件时。
npx skillsauth add steelan9199/wechat-publisher-skill js-error-fixerInstall 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 执行动作 | | ----------------------------------------------- | ---------------------- | | "检查 JS 错误" / "修复 JS 问题" / "JS 语法错误" | 按【检查修复模式】执行 | | "检查文件夹" / "批量处理 JS" / "修复所有 JS" | 按【批量处理模式】执行 | | "检查这个文件" / "修复这个 JS" | 按【单文件模式】执行 |
触发:用户提到检查或修复 JS 错误
| 步骤 | 执行动作 | 具体命令/操作 |
| ---- | --------------------- | ----------------------------------------------------- |
| 1 | 检查 ESLint 配置 | 检查项目是否已安装 ESLint 和配置文件 |
| 2 | 安装 ESLint(如需要) | 运行 npm install --save-dev eslint globals 安装依赖 |
| 3 | 配置 ESLint(如需要) | 创建 eslint.config.js 配置文件 |
| 4 | 运行 ESLint 检查 | 执行 npx eslint <路径> 检查 JS 文件 |
| 5 | 分析错误 | 分类统计错误:语法错误、类型错误、其他 |
| 6 | 创建待办 | 运行 TodoWrite 创建修复任务列表 |
| 7 | 逐个修复 | 按优先级逐个修复文件,使用 Read 和 SearchReplace |
| 8 | 验证修复 | 再次运行 ESLint 确认错误已修复 |
| 9 | 输出报告 | 列出修复的文件和错误类型 |
触发:用户提到文件夹或批量处理
| 步骤 | 执行动作 | 具体命令/操作 |
| ---- | ------------ | ------------------------------------ |
| 1 | 获取目录路径 | 询问用户或从上下文获取目标文件夹路径 |
| 2 | 查找 JS 文件 | 运行 Glob 搜索 **/*.js 文件 |
| 3 | 检查 ESLint | 运行 ESLint 检查所有 JS 文件错误 |
| 4 | 创建待办 | 运行 TodoWrite 列出所有待修复文件 |
| 5 | 批量修复 | 循环处理每个有错误的文件 |
| 6 | 验证结果 | 再次运行 ESLint,输出修复报告 |
触发:用户指定某个 JS 文件
| 步骤 | 执行动作 | 具体命令/操作 |
| ---- | ------------ | ----------------------------------- |
| 1 | 获取文件路径 | 从用户输入或上下文获取文件路径 |
| 2 | 读取文件 | 运行 Read 读取该文件内容 |
| 3 | 检查 ESLint | 运行 ESLint 检查该文件的错误 |
| 4 | 分析问题 | 定位具体错误位置和类型 |
| 5 | 执行修复 | 使用 SearchReplace 或重写文件修复 |
| 6 | 验证修复 | 再次运行 ESLint,确认修复完成 |
| 步骤 | 操作 | 命令 |
| ---- | --------------- | -------------------------------- |
| 1 | 进入项目目录 | cd <项目路径> |
| 2 | 安装 ESLint | npm install --save-dev eslint |
| 3 | 安装 globals 包 | npm install --save-dev globals |
创建 eslint.config.js 配置文件(flat config 格式):
import globals from "globals";
export default [
{
languageOptions: {
ecmaVersion: "latest",
sourceType: "module",
globals: {
...globals.node,
...globals.es2022
}
},
rules: {
"no-undef": "error",
"no-unused-vars": "warn",
"semi": [
"error",
"always"
],
"quotes": [
"error",
"double"
]
}
}
];
| 检查范围 | 命令 |
| ------------------- | ----------------------- |
| 检查单个文件 | npx eslint <文件路径> |
| 检查整个目录 | npx eslint <目录路径> |
| 检查当前目录所有 JS | npx eslint . |
| 错误类型 | 错误表现 | 修复方式 |
| -------------- | --------------------- | -------------------------------------- |
| HTML 实体编码 | 特殊字符被编码 | 将编码字符替换为实际字符 |
| 缺少右括号 ) | 诊断提示"应为')'" | 找到对应左括号位置,在正确位置添加 ) |
| 缺少分号 ; | 诊断提示"应为';'" | 在语句末尾添加 ; |
| 引号不匹配 | 字符串引号未闭合 | 检查字符串,补全闭合引号 |
| 花括号不匹配 | { 和 } 数量不匹配 | 找到缺失的 { 或 } |
| 变量未定义 | 使用了未声明的变量 | 检查变量作用域,添加声明或修正拼写 |
| 错误场景 | 错误表现 | 处理方式 |
| -------------- | ---------------------- | ---------------------------------------- |
| 无 JS 文件 | Glob 搜索结果为空 | 提示用户未找到 JS 文件,询问是否调整路径 |
| 无 ESLint 错误 | ESLint 返回空 | 输出"未发现错误",结束任务 |
| 文件无法读取 | Read 返回错误 | 跳过该文件,记录到报告,继续处理其他文件 |
| 修复后仍有错误 | 修复后 ESLint 仍有问题 | 标记为"需要人工检查",继续处理其他文件 |
| 未安装 ESLint | npx eslint 失败 | 先安装 ESLint 和 globals 包 |
| 法则 | 检查标准 | 通过? | | --------------- | ----------------------------------------- | ------ | | ⭐⭐⭐ 人类中心 | 用户只需说自然语言,AI 自动执行检查和修复 | ✅ | | ⭐⭐⭐ AI 优先 | 使用祈使句指令,表格展示决策逻辑 | ✅ | | ⭐⭐⭐ 即调即用 | 有触发映射表,用户输入 → AI 动作一一对应 | ✅ | | 渐进披露 | 核心内容简短 | ✅ | | 错误处理 | 包含常见错误场景和处理方式表格 | ✅ |
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」时触发。产出评审报告:结论(自包含 / 不独立)+ 问题清单(文件:行号 + 引用的外部依赖 + 为何影响独立性)+ 整改建议。