跳转到正文
报告库
用途分类 / 其他用途

Setup Pre Commit Skill 安全审计

作者说它能做什么(原文)

Set up Husky pre-commit hooks with lint-staged (Prettier), type checking, and tests in the current repo. Use when user wants to add pre-commit hooks, set up Husky, configure lint-staged, or add commit-time formatting/typechecking/testing.

第三方安全检查结论

发现安全风险

已检查文件
2
发现的风险
2
会不会运行危险命令?检查是否下载程序后直接运行、让他人远程控制电脑,或藏起要运行的命令。未发现风险
会不会泄露文件和密钥?检查是否发送含密码或密钥的文件,以及代码里是否直接写了密钥。未发现风险
会不会删除文件或一直在后台运行?检查是否大范围删除文件、改写磁盘,或设置自动启动。发现 1 项风险
中风险

要求暂存并提交全部变更,可能把无关文件或敏感信息写入 Git 历史

原文依据:2 处
发现了什么

Skill 不仅配置钩子,还明确要求暂存“所有”已更改或新建的文件并创建提交。提交前,通配规则还会用 Prettier 改写所有受支持的已暂存文件。它没有先限制文件范围或要求用户确认提交内容。

为什么需要注意

如果仓库原本已有未提交工作、生成文件、凭据文件或其他敏感内容,这些内容可能与钩子配置一起进入提交;Prettier 也可能产生无关的格式改动。即使之后删除,敏感内容仍可能保留在 Git 历史中并在以后推送时泄露。

风险由两项有效指令共同构成:lint-staged 对每个已暂存且可解析的文件执行原地格式化,随后 Skill 要求暂存所有已更改或新建文件并直接提交。若工作区原本含无关改动、生成文件或秘密,这可能把它们写入 Git 历史;钩子还可能改写其中的受支持文件。用户可限制只暂存本 Skill 创建或修改的配置文件,并在提交前检查 staged diff 与敏感信息。

SKILL.md:49来自说明文档打开原文件
### 5. Create `.lintstagedrc````json{  "*": "prettier --ignore-unknown --write"}```
查看另外 1 个位置
SKILL.md:81来自说明文档打开原文件
### 8. CommitStage all changed/created files and commit with message: `Add pre-commit hooks (husky + lint-staged + prettier)`This will run through the new pre-commit hooks: a good smoke test that everything works.
会不会绕过安全保护?检查是否跳过网站安全验证、开放过多文件权限,或取消操作前的确认。发现 1 项风险
低风险

安装命令没有固定依赖版本

原文依据:7 处
发现了什么

安装命令没有指定依赖版本。同样的命令以后可能下载不同代码,你实际安装的内容可能与这次检查时不同。

为什么需要注意

即使命令和报告没变,以后安装时也可能下载到另一份代码。

该流程先要求安装未固定版本的开发依赖,再运行 `npx husky init`。因此首次设置时可能取得随时间变化的 Husky 版本,并执行其初始化代码;这属于正常设置用途,但会带来可复现性和依赖供应链风险。用户可要求作者沿用锁文件、固定主版本,并在安装前审核解析出的版本。

这段代码的正常用途

这里的 `npx lint-staged` 是在前一步已经把 lint-staged 安装为开发依赖之后,由预提交钩子调用本地工具,并非本身明确要求下载安装。依赖安装确实未固定版本,但这条命中的第 42 行是正常运行命令;只有本地依赖缺失且 `npx` 获准获取包时才可能临时下载。

这项判断针对展示的代码和适用条件,不表示风险已经实际发生。
这段代码的正常用途

第 79 行是验证已安装的 lint-staged 是否工作,不是明确的安装步骤。前文要求先将 lint-staged 加入开发依赖,因此正常情况下 `npx` 使用仓库本地版本;只有依赖缺失且允许自动获取时才会产生额外下载。未固定版本的问题存在于前面的依赖安装说明,而不是这条验证命令自身。

这项判断针对展示的代码和适用条件,不表示风险已经实际发生。
SKILL.md:32来自说明文档打开原文件
```bashnpx husky init```
查看另外 6 个位置
SKILL.md:23来自说明文档打开原文件
Install as devDependencies:```husky lint-staged prettier```
SKILL.md:31来自说明文档打开原文件
```bashnpx husky init```
SKILL.md:42来自说明文档打开原文件
```npx lint-stagednpm run typecheck
SKILL.md:39来自说明文档打开原文件
Write this file (no shebang needed for Husky v9+):```npx lint-stagednpm run typechecknpm run test```
SKILL.md:79来自说明文档打开原文件
- [ ] `prettier` config exists- [ ] Run `npx lint-staged` to verify it works
SKILL.md:73来自说明文档打开原文件
### 7. Verify- [ ] `.husky/pre-commit` exists and is executable- [ ] `.lintstagedrc` exists- [ ] `prepare` script in package.json is `"husky"`- [ ] `prettier` config exists- [ ] Run `npx lint-staged` to verify it works
会不会误导 AI 或隐藏内容?检查工作说明是否要求 AI 忽略你的指令、干扰检查结果,或夹带看不见的文字。未发现风险
会不会偷偷改推广链接或收款方?检查是否强制替换推广链接或收款对象,同时要求隐瞒更改。未发现风险

Skill 逻辑拆解

3 个说明模块

该 Skill 会安装 Husky、lint-staged 和 Prettier,并运行 Husky 初始化;这会修改项目依赖、package.json,并创建 .husky 目录。

查看原文
SKILL.md:21来自说明文档打开原文件
### 2. Install dependenciesInstall as devDependencies:```husky lint-staged prettier```
SKILL.md:29来自说明文档打开原文件
### 3. Initialize Husky```bashnpx husky init```This creates `.husky/` dir and adds `prepare: "husky"` to package.json.

生成的提交钩子会先用 Prettier 改写所有已暂存且受支持的文件,然后运行整个项目的类型检查和测试。每次提交都会触发这些命令。

查看原文
SKILL.md:41来自说明文档打开原文件
```npx lint-stagednpm run typechecknpm run test```
SKILL.md:51来自说明文档打开原文件
```json{  "*": "prettier --ignore-unknown --write"}```
SKILL.md:89来自说明文档打开原文件
- Husky v9+ doesn't need shebangs in hook files- `prettier --ignore-unknown` skips files Prettier can't parse (images, etc.)- The pre-commit runs lint-staged first (fast, staged-only), then full typecheck and tests
从这里开始 · 工作说明SKILL.md
setup-pre-commit
连线表示工作说明包含的模块,不是实际运行顺序。点击模块可查看原文。
文件与检查记录2 个文件

检查范围与遗漏

逐文件查看涉及的内容

下方列出本次涉及的原文范围;纳入检查不代表已查清所有问题。

  • SKILL.md已纳入全文
  • agents/openai.yaml已纳入全文

这份报告只针对上方版本。我们看了拿到的代码和说明文件,没有实际运行 Skill,也没有检查它另外安装的软件包。因此,这不是“保证安全”的承诺;换了版本或使用环境,结果也可能不同。

  • SKILL.md工作说明
  • agents/openai.yaml配套文件

代码和说明中提到的操作

运行命令
SKILL.md:31来自说明文档打开原文件
```bashnpx husky init
安装其他软件包
SKILL.md:32来自说明文档打开原文件
```bashnpx husky init```
SKILL.md:42来自说明文档打开原文件
```npx lint-stagednpm run typecheck
SKILL.md:79来自说明文档打开原文件
- [ ] `prettier` config exists- [ ] Run `npx lint-staged` to verify it works
读取了多少行
96
文件校验值(用于核对版本)
c3aede8940c4ed9a9425540a2f07d2ded899ebda127035c01c0ab2c71a74de29