VS Code 代码卫生检查
在提交前检查 VS Code 代码规范,减少因卫生检查失败导致的提交阻塞。
技能仅运行仓库内的 hygiene 脚本并检查暂存文件,未见凭据窃取、隐蔽外传或恶意依赖;但未说明脚本的数据流、用户确认、权限边界或失败后的回滚,因此扣分。
命令、脚本路径和“仅扫描暂存文件”的行为描述基本一致,package.json 也提供了对应脚本;但本次仅静态阅读,未见该技能专属测试、异常输入处理或明确诊断输出,因此按静态上限保守扣分。
触发场景和主要检查项较清楚,适合 VS Code 贡献者提交前使用;但未明确非适用场景、不同工作流下的边界、失败后的修复流程或中文使用说明,因此扣分。其核心功能不依赖海外在线服务。
文档结构清晰,包含运行命令、直接指定文件的示例和检查范围;但缺少技能版本、变更记录、维护责任、更新路径、FAQ、依赖安装说明及完整限制披露,因此扣分。仓库提供 MIT 许可和 Microsoft 归属信息。
能够指导用户运行提交前卫生检查,且命令与仓库脚本相符;但主要输出和修复方式未说明,检查失败后仍需用户自行定位和修改,直接可用性与相对手工检查的收益证据有限,因此扣分。
技能内容可由 package.json 中的 precommit 脚本和仓库中的 hygiene 脚本路径进行审计;但未提供该技能专属测试、CI 覆盖或独立复现结果,静态证据有限,因此扣分。
- 该技能会执行仓库脚本,但未说明脚本的完整副作用、数据流或所需权限;首次使用前应审阅 build/hygiene.ts。
- 文档要求在声明完成前运行检查,但未说明失败输出、自动修复方式或如何处理暂存区范围之外的文件。
- 静态审查未执行命令,不能确认当前修订版在实际环境中的可运行性。
它能做什么 & 适用场景
这是 microsoft/vscode 仓库中名为 hygiene 的 Agent Skill,面向修改 VS Code 代码时的提交前检查。它指导代理运行 VS Code 的 Git pre-commit hygiene check,并检查暂存文件或指定文件。检查内容包括 Unicode、字符串引号、版权头、缩进、格式化、ESLint 和 stylelint。该 Skill 适合已经在 VS Code 源码仓库中工作的开发者;它不是通用代码质量平台,也没有提供独立的安装流程说明。
它可指导用户运行 npm run precommit,该命令执行 node --experimental-strip-types build/hygiene.ts,并通过 git diff --cached 扫描暂存文件;也可直接运行 node --experimental-strip-types build/hygiene.ts path/to/file.ts 检查指定文件。检查项目包括拒绝非 ASCII Unicode 字符、限制非本地化字符串使用双引号、要求 Microsoft 版权头、使用 Tab 缩进、检查 TypeScript 格式、运行 ESLint,以及对 CSS 运行 stylelint。若卫生检查失败,Git 提交会被拒绝。
- 正在修改 VS Code 源码并准备提交暂存文件的开发者,可先运行完整的 pre-commit hygiene check。
- 只想验证某个 TypeScript 文件、但尚未将修改加入暂存区的开发者,可直接传入文件路径运行检查脚本。
- 需要排查提交被拒绝原因的贡献者,可根据 Unicode、引号、版权头、缩进、格式化、ESLint 或 stylelint 检查项逐项修正。
- 为 VS Code 添加或修改 CSS 的开发者,可在提交前确认 stylelint 检查不会失败。
优缺点一览
- 覆盖提交前的多类规范检查,包括 Unicode、引号、版权头、缩进、格式化、ESLint 和 stylelint。
- 既支持检查全部暂存文件,也支持直接检查指定文件。
- 明确提醒在宣布工作完成前运行检查,有助于发现会阻塞提交的问题。
- 内容针对 VS Code 仓库的 `build/hygiene.ts` 和其开发约定,不能视为适用于任意项目的通用检查器。
- 运行方式依赖 Node.js、npm、Git 以及仓库中的构建脚本;源材料未提供独立安装包。
- 默认命令只扫描暂存文件,未暂存的修改不会被该命令检查。
- SKILL.md 未说明测试套件、跨平台验证情况或检查失败后的自动修复能力。
如何安装
该 Skill 位于仓库的 .github/skills/hygiene/SKILL.md。源材料没有说明独立安装命令、目标客户端的 skills 目录或单独打包方式;应将该文件所在的 Skill 文件夹交给兼容 Agent Skills 的客户端使用。整个仓库的源代码采用 MIT 许可证。
如何使用
在 VS Code 仓库中完成修改并暂存文件后运行:npm run precommit
该命令只扫描暂存文件。若未暂存文件但要检查指定文件,可运行:node --experimental-strip-types build/hygiene.ts path/to/file.ts
可向代理发出类似请求:“请在宣布工作完成前运行 VS Code hygiene check,并修复检查发现的问题。”