跳转到正文
报告库
用途分类 / 开发辅助

Test Driven Development Skill 安全审计

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

Use when implementing any feature or bugfix, before writing implementation code

第三方安全检查结论

先别安装或运行

已检查文件
2
发现的风险
3
会不会运行危险命令?检查是否下载程序后直接运行、让他人远程控制电脑,或藏起要运行的命令。发现 1 项风险
中风险

强制运行仓库控制的 npm 测试脚本,未要求先检查其实际命令

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

该 Skill 两次把 `npm test` 标为必须执行。`npm test` 会运行项目清单中定义的脚本;示例中的测试文件参数并不能限制该脚本本身做什么。提供的材料没有要求执行前检查脚本或隔离权限。

为什么需要注意

若打开的仓库不受信任或测试脚本被篡改,该命令可在代理权限范围内执行任意本地操作,包括读取凭据、联网或更改文件。材料本身不能证明这些行为会发生。

这些是标为强制的实际 shell 执行指令。`npm test` 会启动仓库在包清单中配置的测试脚本;路径参数通常只传给该脚本,并不限制脚本自身的文件、凭据或网络访问。因此,在不受信任或被篡改的仓库中,脚本可在代理权限范围内造成影响。运行测试对 TDD 属正常用途,材料也没有证明脚本恶意,但没有要求执行前审查命令。用户可限制权限,并要求先展示实际 npm 脚本及其生命周期钩子。

SKILL.md:113来自说明文档打开原文件
### Verify RED - Watch It Fail**MANDATORY. Never skip.**```bashnpm test path/to/test.test.ts```
查看另外 1 个位置
SKILL.md:168来自说明文档打开原文件
### Verify GREEN - Watch It Pass**MANDATORY.**```bashnpm test path/to/test.test.ts```
会不会泄露文件和密钥?检查是否发送含密码或密钥的文件,以及代码里是否直接写了密钥。未发现风险
会不会删除文件或一直在后台运行?检查是否大范围删除文件、改写磁盘,或设置自动启动。发现 2 项风险
高风险

强制删除先于测试编写的生产代码,可能毁掉用户已有工作

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

该 Skill 不仅建议测试优先,还明确命令代理删除任何先写的生产代码、不得保留或查看,并重新实现。它没有把删除限制为代理刚生成且可恢复的改动,也没有要求先征得用户确认。

为什么需要注意

如果仓库含有用户已有、尚未提交或难以重建的实现,代理可能永久移除有价值的代码和工作成果;删除后重新实现还可能遗漏原有行为。

这是面向代理的现行规则,不是示例或警告:它要求删除在测试之前编写的代码,并明确禁止保留或查看。若代理把规则应用于用户已有、未提交或不可恢复的代码,可能造成工作丢失。虽然上下文是实施功能时执行 TDD,但文本没有把删除限定为代理本轮新写的内容,也未要求删除前确认。用户可要求作者限定为本轮可恢复改动,并在删除既有文件前明确征得同意。

SKILL.md:31来自说明文档打开原文件
## The Iron Law```NO PRODUCTION CODE WITHOUT A FAILING TEST FIRST```Write code before the test? Delete it. Start over.**No exceptions:**- Don't keep it as "reference"- Don't "adapt" it while writing tests- Don't look at it- Delete means deleteImplement fresh from tests. Period.
查看另外 2 个位置
SKILL.md:228来自说明文档打开原文件
## Red Flags - STOP and Start Over- Code before test- Test after implementation- Test passes immediately- Can't explain why test failed- Tests added "later"- Rationalizing "just this once"- "I already manually tested it"- "Tests after achieve the same purpose"- "It's about spirit not ritual"- "Keep as reference" or "adapt existing code"- "Already spent X hours, deleting is wasteful"- "TDD is dogmatic, I'm being pragmatic"- "This is different because..."**All of these mean: Delete code. Start over with TDD.**
SKILL.md:39来自说明文档打开原文件
**No exceptions:**- Don't keep it as "reference"- Don't "adapt" it while writing tests- Don't look at it- Delete means deleteImplement fresh from tests. Period.
中风险

要求立即修复所有其他测试失败,可能越过用户授权的任务范围

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

绿灯验证步骤把“其他测试仍通过”作为要求,并直接命令发现其他失败时立即修复,却没有先判断失败是否早已存在、是否与本次改动有关,或是否属于用户要求的工作。

为什么需要注意

代理可能修改与当前功能或修复无关的文件和行为,扩大变更范围,并掩盖仓库原有问题的来源。

该检查清单合理地要求防止回归,但随后的现行指令无条件要求“立即”修复其他失败。若测试失败早已存在、与本次任务无关,代理可能修改用户未授权的模块,扩大变更范围并掩盖基线问题。材料未要求先核对失败是否由本次改动引起。用户可要求代理记录既有失败,只修复能证明由当前变更造成且在授权范围内的问题。

SKILL.md:176来自说明文档打开原文件
Confirm:- Test passes- Other tests still pass- Output pristine (no errors, warnings)**Test fails?** Fix code, not test.**Other tests fail?** Fix now.
会不会绕过安全保护?检查是否跳过网站安全验证、开放过多文件权限,或取消操作前的确认。未发现风险
会不会误导 AI 或隐藏内容?检查工作说明是否要求 AI 忽略你的指令、干扰检查结果,或夹带看不见的文字。未发现风险
会不会偷偷改推广链接或收款方?检查是否强制替换推广链接或收款对象,同时要求隐瞒更改。未发现风险

Skill 逻辑拆解

8 个说明模块

该 Skill 把测试驱动开发设为功能、修复、重构和行为变更的默认流程:先写测试并确认失败,再写最少实现、确认通过,最后重构。

查看原文
SKILL.md:18来自说明文档打开原文件
**Always:**- New features- Bug fixes- Refactoring- Behavior changes
SKILL.md:59来自说明文档打开原文件
    red -> verify_red;    verify_red -> green [label="yes"];    verify_red -> red [label="wrong\nfailure"];    green -> verify_green;    verify_green -> refactor [label="yes"];    verify_green -> green [label="no"];    refactor -> verify_green [label="stay\ngreen"];    verify_green -> next;    next -> red;}

编写或修改测试时,该 Skill 要求加载配套指南;指南强调手工推导期望值、验证真实行为,并尽量避免只验证模拟对象。

查看原文
SKILL.md:206来自说明文档打开原文件
When writing or changing any test, read [writing-good-tests.md](writing-good-tests.md) for the rules that keep tests honest:- Name the production change that would make the test fail — before writing it- Assert on real behavior, never on mock behavior- Keep test-only code in test utilities, out of production classes- Understand a dependency's side effects before mocking it
writing-good-tests.md:27来自说明文档打开原文件
**Derive expectations independently.** Use literals and hand-checkedfixtures; table-driven tests with literal `want` values are the preferredshape. An expectation computed by the code under test — or its helpers —passes no matter what that code does:

该 Skill 要求通过项目的 npm 测试命令实际验证红灯和绿灯阶段,而不是只生成测试代码。

查看原文
SKILL.md:113来自说明文档打开原文件
### Verify RED - Watch It Fail**MANDATORY. Never skip.**```bashnpm test path/to/test.test.ts```
SKILL.md:168来自说明文档打开原文件
### Verify GREEN - Watch It Pass**MANDATORY.**```bashnpm test path/to/test.test.ts```
从这里开始 · 工作说明SKILL.md
test-driven-development
连线表示工作说明包含的模块,不是实际运行顺序。点击模块可查看原文。 另有 4 个章节,可在原文件中查看。

文件引用关系图

1 处引用
哪些文件发起引用引用了什么
连线表示真实的文件引用,不是运行顺序。点击节点可高亮相关连线,并查看具体文件和原文位置。虚线表示还有文件需要定位。
文件与检查记录2 个文件

检查范围与遗漏

逐文件查看涉及的内容

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

  • SKILL.md已纳入全文
  • writing-good-tests.md已纳入全文

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

  • SKILL.md工作说明
  • writing-good-tests.md配套文件

代码和说明中提到的操作

运行命令
SKILL.md:117来自说明文档打开原文件
```bashnpm test path/to/test.test.ts
SKILL.md:172来自说明文档打开原文件
```bashnpm test path/to/test.test.ts
SKILL.md:259来自说明文档打开原文件
**Verify RED**```bash$ npm test
读取了多少行
520
文件校验值(用于核对版本)
f48f36efa64e7f085cf6a0aa035bfec0a8ae6d7b1caabf7cd9302865ea807fc7