mcpField
L
ln-631-test-business-logic-auditor

ln-631-test-business-logic-auditor

github.com/levnikolaevich测试与质量584395 次安装2 天前更新
代码仓库

关于 ln-631-test-business-logic-auditor

面向团队的测试审计 Worker,用于判断测试验证的是产品行为还是框架、库的默认行为。它输出问题和合规评分,不会修改代码。

主要功能

  1. 01通过两层检测扫描测试
  2. 02标记框架和库行为测试
  3. 03建议删除或改写为产品行为测试
  4. 04计算合规评分
  5. 05生成结构化审计报告

适用场景

  1. 01审计现有代码库中的测试
  2. 02找出仅验证框架行为的测试
  3. 03制定产品行为测试整改计划

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/levnikolaevich/claude-code-skills --skill ln-631-test-business-logic-auditor

安装后在 Claude Code 中输入/ln-631-test-business-logic-auditor确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
audit_output_schema.md
audit_scoring.md
audit_summary_contract.md
audit_worker_core_contract.md
two_layer_detection.md
references/templates/
audit_worker_report_template.md

详细介绍

路径: 文件路径(references/、../ln-*)相对于此技能目录。

产品行为审计员(L3 Worker)

类型: L3 Worker

专门审计测试是否验证产品行为,而非平台行为的工作器。

目的与范围

  • 审计产品行为关注度(类别 1:高优先级)
  • 检测验证语言、框架、库、生成内容或平台默认行为,而非本地产品逻辑的测试
  • 输出 DELETE_NON_PRODUCT_TEST 或 REWRITE_TO_PRODUCT_BEHAVIOR
  • 计算合规分数(X/10)

输入

必须读取: 加载 references/audit_worker_core_contract.md。

接收包含以下内容的 contextStore:tech_stack、testFilesMetadata、codebase_root、output_dir。

工作流

检测策略:使用两层检测(候选扫描,然后上下文验证);仅当验证方法存在歧义时,才加载 references/two_layer_detection.md。

  1. 解析上下文: 从 contextStore 提取技术栈、框架检测模式、测试文件列表、output_dir
  2. 扫描代码库(第 1 层): 扫描测试文件,查找框架/库测试(参见下方的审计规则) 2b) 上下文分析(第 2 层——必须执行): 对每个候选项,阅读测试代码并判断:
    • 该测试是否测试了封装框架原语的自定义代码(例如使用 useState 的自定义 hook)?→ 保留(测试的是集成,而非框架)
    • 该测试是否仅调用语言/框架/库 API,且不包含任何自定义产品逻辑?→ DELETE_NON_PRODUCT_TEST
    • 能否重写该测试,以断言本地规则、映射、策略或错误行为?→ REWRITE_TO_PRODUCT_BEHAVIOR
    • 该测试是否为导入库进行模拟设置的测试辅助程序/工具?→ 跳过(不是框架行为测试)
  3. 收集问题: 记录每个违规项的严重程度、位置(文件:行)、工作量估算(S/M/L)、建议
  4. 计算分数: 按严重程度统计违规项,计算合规分数(X/10)
  5. 编写报告: 按照 references/templates/audit_worker_report_template.md 在内存中构建完整的 Markdown 报告,并通过一次 Write 调用写入 {output_dir}/ln-631--global.md
  6. 返回摘要: 向协调器返回最简摘要(参见输出格式)

审计规则

1. 框架测试检测

内容: 验证框架行为(Express、Fastify、Koa),而非我们的业务逻辑的测试

检测模式:

  • (express|fastify|koa).(use|get|post|put|delete|patch)
  • 测试名称:“调用了中间件”“路由处理程序正常工作”“Express 应用开始监听”

严重程度: 中

建议: 当测试仅验证框架行为时,使用 DELETE_NON_PRODUCT_TEST。当有针对性的断言可以证明本地集成逻辑时,使用 REWRITE_TO_PRODUCT_BEHAVIOR。

工作量: S(删除测试文件或测试代码块)

2. ORM/数据库库测试

内容: 验证 Prisma/Mongoose/Sequelize/TypeORM 行为的测试

检测模式:

  • (prisma|mongoose|sequelize|typeorm).(find|findMany|create|update|delete|upsert)
  • 测试名称:“Prisma findMany 返回数组”“Mongoose save 正常工作”

严重程度: 中

建议: 当测试仅验证 ORM 行为时,使用 DELETE_NON_PRODUCT_TEST。对于存储库策略、查询组合、错误映射或事务规则,使用 REWRITE_TO_PRODUCT_BEHAVIOR。

工作量: S

3. 加密/哈希库测试

内容: 验证 bcrypt/argon2 哈希行为的测试

检测模式:

  • (bcrypt|argon2).(hash|compare|verify|hashSync)
  • 测试名称:“bcrypt 对密码进行哈希”“argon2 正确比较”

严重程度: 中

建议: 当测试仅验证库行为时,使用 DELETE_NON_PRODUCT_TEST。对于密码策略、凭据生命周期或封装器错误处理,使用 REWRITE_TO_PRODUCT_BEHAVIOR。

工作量: S

4. JWT/Token 库测试

内容: 验证 JWT 签名/验证的测试

检测模式:

  • (jwt|jsonwebtoken).(sign|verify|decode)
  • 测试名称:“JWT signs token”“JWT verifies signature”

严重程度: 中

建议: 如果测试仅验证 JWT 库的行为,则使用 DELETE_NON_PRODUCT_TEST。对于令牌声明、过期策略、角色或认证流程,则使用 REWRITE_TO_PRODUCT_BEHAVIOR。

工作量: S

5. HTTP 客户端库测试

内容: 验证 axios/fetch/got 行为的测试

检测模式:

  • (axios|fetch|got|request).(get|post|put|delete|patch)
  • 测试名称:“axios makes GET request”“fetch returns data”

严重程度: 中

建议: 如果测试仅验证 HTTP 客户端的行为,则使用 DELETE_NON_PRODUCT_TEST。对于重试策略、超时策略、请求整形或错误映射,则使用 REWRITE_TO_PRODUCT_BEHAVIOR。

工作量: S

6. React Hooks/框架测试

内容: 验证 React hooks 行为(useState、useEffect 等)的测试

检测模式:

  • (useState|useEffect|useContext|useReducer|useMemo|useCallback)
  • 测试名称:“useState updates state”“useEffect runs on mount”

严重程度: 低(如果测试的是我们自定义 hook 的逻辑,则可接受)

建议: 如果测试的是框架行为,则使用 DELETE_NON_PRODUCT_TEST。如果可以通过产品可见行为验证自定义 hook 或组件策略,则使用 REWRITE_TO_PRODUCT_BEHAVIOR。

工作量: S-M

评分算法

必须阅读: 加载 references/audit_scoring.md。

输出格式

必须阅读: 加载 references/templates/audit_worker_report_template.md。

按照 references/audit_summary_contract.md 编写 JSON 摘要。在托管模式下,调用方会同时传入 runId 和 summaryArtifactPath;在独立模式下,工作器会根据共享契约生成自己的、限定于本次运行的产物路径。

将报告写入 {output_dir}/ln-631--global.md,其中 category: "Product Behavior Focus",检查项为:framework_tests、orm_tests、crypto_tests、jwt_tests、http_client_tests、react_hooks_tests。发现项必须包含 action,值为 DELETE_NON_PRODUCT_TEST 或 REWRITE_TO_PRODUCT_BEHAVIOR。

按照 references/audit_summary_contract.md 返回摘要。

当 summaryArtifactPath 缺失时,将独立运行摘要写入 .hex-skills/runtime-artifacts/runs/{run_id}/evaluation-worker/{worker}--{identifier}.json,并可选择在结构化输出中回显相同的摘要。

Report written: .hex-skills/runtime-artifacts/runs/{run_id}/audit-report/ln-631--global.md
Score: X.X/10 | Issues: N (C:N H:N M:N L:N)

关键规则

应用已加载的 references/audit_worker_core_contract.md。

  • 不要自动修复: 仅报告
  • 独特判断角度: 只判断测试是否证明了本地产品行为。不要评估作品集价值、端到端覆盖率、隔离性、预期结果强度或结构。
  • 框架特定模式: 将检测模式与项目的实际技术栈匹配
  • 工作量估算: S = 少于 1 小时,M = 1–4 小时,L = 超过 4 小时
  • 结合上下文判断: 基于库构建的自定义封装(例如使用 useState 的自定义 hook)属于我们的代码——不要标记
  • 排除测试辅助工具: 不要标记导入库以进行模拟设置的共享测试工具

完成定义

应用已加载的 references/audit_worker_core_contract.md。

  • contextStore 已成功解析(包括 output_dir)
  • 已完成全部 6 项检查(框架、ORM、加密、JWT、HTTP 客户端、React hooks)
  • 已收集包含严重程度、位置、工作量、建议和 action 的发现项
  • 已使用惩罚算法计算分数
  • 已将报告写入 {output_dir}/ln-631--global.md(通过单次原子 Write 调用)
  • 已按照契约写入摘要

参考文件

  • 审计输出架构: references/audit_output_schema.md

版本: 3.0.0 最后更新: 2025-12-23

评论

支持 Markdown