# Yy Lint

> 执行代码 lint 检查。用于：用户提到"lint"、"代码检查"、"代码风格检查"、 "运行 lint"时触发。 不用于为项目添加或配置 lint 工具、修复代码业务逻辑，也不用于代码评审或单元测试执行。

- Skill: `bulls-cows/yy-lint` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add bulls-cows/yy-lint`
- Raw SKILL.md: https://api.skillmd.com/api/skills/bulls-cows/yy-lint/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: bulls-cows (https://skillmd.com/u/bulls-cows)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/bulls-cows/yy-lint

---


# yy-lint

## 描述

执行代码 lint 检查，自动检测 lint 脚本、验证 Node 版本、执行检查并修复报错（不修复警告）。修复前必须先定位报错根因，无法定位根因时不盲目修复；修复方案涉及大规模文件改动时，必须先给出方案并获得用户明确确认。支持自定义命令。

## 使用场景

- 用户提到"lint"、"代码检查"、"代码风格检查"
- 用户要求运行 lint 检查
- 用户要求检查代码风格问题
- 用户指定自定义 lint 命令（如 `/yy-lint npm run eslint:fix`）

不应触发：

- 用户只是查看代码
- 用户要求重构代码
- 用户要求修复 bug（除非明确提到 lint）
- 用户要求编写测试

## 指令

### 步骤 1. 确定执行命令

按优先级确定要执行的命令：

1. 用户明确指定的命令（如 `/yy-lint npm run eslint:fix`）
2. `package.json` 中的 `lint:fix` 脚本
3. `package.json` 中的 `lint` 脚本

**决策分支**：

- **有可用命令**：进入步骤 2
- **无可用命令**：提示用户并结束执行

### 步骤 2. 验证 Node 版本

检查 `.nvmrc` 文件是否存在：

- **不存在**：跳过版本验证，继续执行
- **存在**：验证当前 Node 版本是否满足要求
  - **满足**：继续执行
  - **不满足**：显示警告并结束执行

### 步骤 3. 执行 lint 检查

执行确定的命令并捕获 exit code：

- **exit code 为 0**：检测通过，显示成功消息，**不读取输出日志**（节省 token），进入步骤 7
- **exit code 非 0**：读取错误日志，进入步骤 4

**并行任务约束**：

- 若有多个任务正在并行执行（同时修改文件），**不执行 lint**
- 等所有并行任务完成后，再统一执行

### 步骤 4. 定位报错根因

对报错日志逐条分析，先定位根因，再谈修复：

1. 按规则类型和涉及文件对报错归类，区分独立报错与级联报错（一个根因引发的多条报错）
2. 打开报错涉及的源文件和相关配置文件，确认报错的实际触发位置
3. 判断根因类型：代码问题、lint/TS 配置问题、依赖或工具链问题

**决策分支**：

- **根因明确、修复方式确定**：进入步骤 5
- **根因无法定位**（报错信息不足以判断、级联报错找不到源头、疑似配置或工具链异常）：**不盲目修改任何文件**，输出报错清单和初步分析，提示用户人工介入，进入步骤 7

### 步骤 5. 评估修复规模并确认

根据已定位的根因，评估修复方案预计涉及的改动范围。

**大规模改动判定**（满足任一即视为大规模）：

- 预计修改文件 ≥ 10 个
- 需要修改 lint 或 TypeScript 全局配置文件（如 ESLint 配置、tsconfig）
- 根因指向依赖或工具链（需要升级、更换依赖或调整工具版本）

**决策分支**：

- **小规模改动**：直接进入步骤 6
- **大规模改动**：先输出修复方案（报错分类、涉及文件清单、每类报错的修复方式），**等待用户明确答复**
  - 用户确认采纳：进入步骤 6
  - 用户拒绝或要求调整：按用户意见处理，未确认前不修改任何文件

### 步骤 6. 修复报错并验证

只修复已定位根因的报错：

- 正面解决问题，不得绕过（如添加 `any` 类型、删除功能代码）
- 警告不自动修复，保留供人工评估
- 修复完成后重新执行 lint 命令验证，仍有报错则回到步骤 4

### 步骤 7. 输出结果

输出格式：执行状态、命令名称、报错数量（如有）、根因定位结果（如有）、修复结果（如有）。无法定位根因或大规模方案未获确认时，明确标注未修复的报错及原因。

详细工作流程参考 `resources/workflow.md`，输出示例参考 `examples/output.md`。

## 安全边界

**禁止主动执行的命令**：

- 除 `npm run lint:fix` 或 `npm run lint` 外的其他 package.json 脚本
- 编译、构建、部署命令
- 自动执行的测试命令
- 除 `node --version` 外的其他 npx 命令

## 相关资源

- `examples/output.md`：各类输出示例
- `resources/workflow.md`：详细工作流程和错误修复原则

