mcpField
L
ln-634-test-coverage-auditor

ln-634-test-coverage-auditor

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

关于 ln-634-test-coverage-auditor

专门审查项目关键本地逻辑是否缺少高价值测试的 Skill。它按资金、权限、数据完整性、算法和领域规则等类别归纳缺口并生成报告,不修改代码,也不以提高覆盖率百分比为目标。

主要功能

  1. 01扫描关键本地逻辑
  2. 02跨项目检查相关测试
  3. 03按逻辑类别归纳缺口
  4. 04以 ADD_MISSING 标记缺失测试
  5. 05计算合规评分
  6. 06支持按领域扫描

适用场景

  1. 01查找支付或退款规则的缺失测试
  2. 02审查授权与权限逻辑
  3. 03检查数据完整性和领域算法

安装

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

$npx skills add https://github.com/levnikolaevich/claude-code-skills --skill ln-634-test-coverage-auditor

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

包含的文件

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

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

详细介绍

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

关键逻辑覆盖率审计员(L3 Worker)

类型: L3 Worker

专门识别独特关键本地逻辑的缺失测试。

目的与范围

  • 审计 关键逻辑覆盖率(类别 4:高优先级)
  • 仅识别未测试的独特本地逻辑
  • 按类别分类(金钱、身份验证/权限、数据完整性、算法、领域规则)
  • 针对缺失的高价值测试生成 ADD_MISSING 发现
  • 不要仅为提高覆盖率百分比而建议测试
  • 计算合规评分(X/10)

输入

必须读取: 加载 references/audit_worker_core_contract.md 和 references/mcp_tool_preferences.md。 工具策略:你可能作为独立子 Agent 运行,此时宿主的 AGENTS.md 不在适用范围内,因此读取文件、搜索和编辑时默认优先使用 hex-line MCP。仅当 MCP 行为不明确时,才加载 references/mcp_integration_patterns.md。

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

支持领域感知: 支持 domain_mode + current_domain(参见 audit_output_schema.md#domain-aware-worker-output)。

当热点能显著帮助发现覆盖缺口时,优先使用 hex-graph。如果可用,读取本地代码和测试时优先使用 hex-line。如果 MCP 不可用、不受支持或未建立索引,请继续使用内置的 Read/Grep/Glob/Bash,并在报告中说明回退情况。

工作流

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

  1. 解析上下文 -- 提取字段,确定 scan_path(如果指定,则采用领域感知方式) ELSE: scan_path = codebase_root domain_name = null

  2. 识别 scan_path 中的关键本地逻辑(而非整个代码库)

    • 扫描 scan_path 中的生产代码,查找金钱/身份验证/权限/数据/算法/领域规则相关关键词
    • 所有 Grep/Glob 模式都使用 scan_path(而非 codebase_root)
    • 示例:Grep(pattern="payment|refund|discount", path=scan_path)
  3. 检查每条关键路径的测试覆盖情况(第 1 层)

    • 搜索所有测试文件以检查覆盖情况(测试文件可能与生产代码位于不同位置)
    • 按函数名、模块名或测试说明进行匹配 3b) 上下文分析(第 2 层 -- 必须执行): 对每个缺口候选项,询问:
    • 该函数是否已由 E2E/集成测试覆盖?-> 降级为 LOW
    • 该函数是否为由已测试代码调用且少于 10 行的辅助函数?-> 跳过
    • 关键词匹配是否为误报(例如,paymentIcon() 是 UI,而非支付逻辑)?-> 跳过
  4. 收集缺失测试

    • 如果采用领域感知方式,为每项发现标注 domain: domain_name
    • 对每项已确认的发现设置 action: "ADD_MISSING"
  5. 计算评分: 按严重程度统计违规项,并计算合规评分(X/10)

  6. 撰写报告: 按照 references/templates/audit_worker_report_template.md 在内存中构建完整 Markdown 报告,并通过单次 Write 调用写入 {output_dir}/ln-634--{identifier}.md(如果采用领域感知方式,则写入 {output_dir}/ln-634--{identifier}.md)

  7. 返回摘要: 向协调器返回最简摘要(参见输出格式)

关键本地逻辑分类

1. 资金流(优先级 20+)

内容: 任何处理金融交易的代码

示例:

  • 支付处理(/payment、processPayment())
  • 折扣/促销(calculateDiscount()、applyPromoCode())
  • 税费计算(calculateTax()、getTaxRate())
  • 退款(processRefund()、/refund)
  • 发票/计费(generateInvoice()、createBill())
  • 货币转换(convertCurrency())

最低优先级: 20

关键原因: 资金损失、欺诈、法律合规

2. 身份验证与权限(优先级 20+)

内容: 本地身份验证、授权、权限和安全决策

示例:

  • 登录/注销(/login、authenticate())
  • 刷新令牌(/refresh-token、refreshAccessToken())
  • 重置密码(/forgot-password、resetPassword())
  • 权限/RBAC(checkPermission()、hasRole())
  • 加密/哈希(自定义加密编排或策略,不包括 bcrypt/argon2 等库的行为)
  • API 密钥验证(validateApiKey())

最低优先级: 20

关键原因: 安全漏洞、数据泄露、未授权访问

3. 数据完整性(优先级 15+)

内容: CRUD 操作、事务、验证

示例:

  • 关键 CRUD 操作(createUser()、deleteOrder()、updateProduct())
  • 数据库事务(withTransaction())
  • 数据验证(自定义验证器,不包括框架默认行为)
  • 数据迁移(runMigration())
  • 唯一性约束(checkDuplicateEmail())

最低优先级: 15

关键原因: 数据损坏、数据丢失、状态不一致

4. 算法与领域规则(优先级 15+)

内容: 编码项目特定行为的本地计算、分支规则、状态转换和算法

示例:

  • 排名/评分算法
  • 资格规则
  • 领域状态转换
  • 超出框架默认行为的自定义验证规则
  • 导入/导出转换

最低优先级: 15

关键原因: 产品行为错误、决策不当、业务状态损坏

审计规则

1. 识别关键本地逻辑

流程:

  • 在代码库中搜索与资金相关的关键词:payment、refund、discount、tax、price、currency
  • 搜索身份验证/权限相关关键词:auth、login、password、token、permission、role、policy
  • 搜索数据相关关键词:transaction、validation、migration、constraint
  • 搜索算法/领域规则相关关键词:score、rank、eligibility、state、workflow、rule
  • 排除框架默认行为、生成的行为和库的基础功能;ln-631负责现有测试中产品与平台的测试重点
2. 检查测试覆盖率

针对每条关键路径:

  • 搜索测试文件,查找名称/描述相符的测试
  • 如果未找到测试 -> 添加到缺失测试列表
  • 如果找到的测试不充分(只有正向测试,没有边界情况)-> 添加到差距列表
3. 对差距分类

按优先级划分严重程度:

  • 严重: 优先级 20+(资金、安全)
  • 高: 优先级 15-19(数据、核心流程)
  • 中: 优先级 10-14(重要但不关键)
  • 降级条件: 函数已有 E2E 测试覆盖 -> 低。被已测试代码调用且少于 10 行的辅助函数 -> 跳过
4. 提供理由

针对每项缺失的测试:

  • 说明其关键原因(资金损失、安全漏洞等)
  • 建议测试类型(E2E、集成、单元)
  • 将操作设为 ADD_MISSING
  • 估算工作量(S/M/L)

评分算法

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

按优先级划分严重程度:

  • 优先级 20+(资金、安全)缺少测试 -> 严重
  • 优先级 15-19(数据完整性、核心流程)缺少测试 -> 高
  • 优先级 10-14(重要)缺少测试 -> 中
  • 优先级 <10(锦上添花)-> 低

输出格式

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

按照 references/audit_summary_contract.md 编写 JSON 摘要。在托管模式下,调用方会传入 runId 和 summaryArtifactPath;在独立模式下,工作器会按照共享契约自行生成作用域为本次运行的制品路径。

将报告写入 {output_dir}/ln-634--{identifier}.md(全局)或 {output_dir}/ln-634--{identifier}.md(感知域),并设置 category: "Critical Logic Coverage" 和以下检查项:money_logic_coverage、auth_permission_coverage、data_integrity_coverage、algorithm_domain_rule_coverage。

按照 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-634--{identifier}.md
Score: X.X/10 | Issues: N (C:N H:N M:N L:N)

关键规则

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

  • 感知域扫描: 如果 domain_mode="domain-aware",则仅扫描 scan_path 中的生产代码(而非整个代码库)
  • 标记发现项: 感知域模式下,在每项发现中包含 domain 字段
  • 测试搜索范围: 搜索所有测试文件以检查覆盖情况(测试可能位于与生产代码不同的位置)
  • 按名称匹配: 使用函数名、模块名或测试描述,将测试与生产代码匹配
  • 不要自动修复: 仅报告
  • 独特角度: 仅查找独特的本地关键逻辑中缺失的测试。不要评估现有的低价值测试、端到端旅程优先级、可信度、预言机强度、人工证据或结构。
  • 不做覆盖率百分比相关工作: 不要仅为提高行/分支覆盖率指标而推荐测试。
  • 必须执行的操作: 每项发现都使用 action: "ADD_MISSING"。

完成定义

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

  • 成功解析 contextStore(包括 output_dir、domain_mode、current_domain)
  • 确定 scan_path(域路径或代码库根目录)
  • 识别 scan_path 中的关键本地逻辑(资金、身份验证/权限、数据完整性、算法、领域规则)
  • 检查每条关键本地逻辑路径的测试覆盖情况
  • 收集缺失的测试,并注明严重性、优先级、理由、域和 ADD_MISSING 操作
  • 使用惩罚算法计算分数
  • 将报告写入 {output_dir}/ln-634--{identifier}.md 或 ln-634--{identifier}.md(通过单次原子 Write 调用)
  • 按照契约写入摘要

参考文件

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

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

评论

支持 Markdown