用途
ln-637-test-structure-auditor 是一个测试可维护性与结构审计技能,类型为 L3 Worker。它专门审计测试文件的组织方式,包括孤立测试、碎片化重复测试以及随着测试套件增长而出现的布局漂移,目标是维护测试套件的可维护性。
该技能属于审计类别 8:中优先级。它只审计可维护性与结构,不评估产品行为、E2E 旅程价值、组合价值、缺失覆盖率、可信度、oracle 强度或人工证据质量。
主要能力
技能执行 6 项审计检查:
-
布局模式检测:识别项目使用的测试组织模式(同目录 co-located、镜像 mirrored、集中扁平 centralized-flat、人工 manual),计算各模式分布百分比。若超过 70% 文件遵循一种模式,则该模式为主导模式;若无模式达到 70%,则为混合模式。混合模式若按测试类型区分则可接受。少于 5 个测试文件的项目跳过。
-
测试到源码映射:检测孤立测试文件(源码已删除但测试仍存在)和路径不匹配。对每个测试文件推断其隐含的源码模块并检查是否存在。集成/e2e 测试、集中扁平布局、导入多个源码模块的测试以及工具/辅助测试文件会被跳过。
-
扁平目录增长:检测文件数量过多的测试目录。阈值:15-20 个文件为 LOW(接近上限),超过 20 个文件为 MEDIUM(建议重构)。对 MEDIUM 发现,通过分析文件名前缀建议基于领域的分组。
-
领域分组对齐:检查测试目录分组是否镜像源码领域结构,标记没有对应测试组的源码领域。
-
同目录一致性:检测项目使用的同目录模式并标记不一致。计算同目录与集中式测试的比例,识别偏离主导模式的模块。
-
碎片化重复:检测分散在多个文件中的重复或近似重复测试,按导入的源码模块和测试描述关键词分组,查找重复的 setup 块、断言和场景名称。
使用方式
该技能接收 contextStore,包含:tech_stack、testFilesMetadata(所有类型,包括自动化和人工测试)、codebase_root、output_dir、domain_mode、all_domains。与其他接收类型过滤元数据的 worker 不同,此 worker 接收所有测试文件,因为目录结构分析需要完整了解自动化和人工测试的放置位置。
工作流程:
- 解析 Context:从 contextStore 提取测试文件列表、output_dir、codebase_root、领域信息
- 映射源码结构:Glob 源码目录(src/、app/、lib/)构建源码领域/模块树
- 映射测试结构:按父目录分组测试文件,统计每个目录的文件数,分类位置
- 扫描检查(第一层):使用 Glob/Grep 模式运行 6 项审计检查
- 上下文分析(第二层,强制):对每个候选发现应用第二层过滤器
- 收集发现:记录违规的严重性、位置、工作量、操作、建议
- 计算评分:按严重性统计违规,计算合规评分(X/10)
- 写入报告:按模板构建完整 markdown 报告,单次 Write 调用写入 {output_dir}/ln-637--global.md
- 返回摘要:向协调器返回最小摘要
检测策略采用两层检测(候选扫描,然后上下文验证)。
适用场景
适用于需要审计测试文件组织结构的项目,尤其是随着测试套件增长需要评估可维护性的场景。可检测布局漂移、孤立测试、碎片化重复、测试到源码映射和领域分组等问题。
限制
- 不自动修复:仅报告,建议重构
- 工作量定义:S = 少于 1 小时,M = 1-4 小时,L = 超过 4 小时
- 少于 5 个测试文件时跳过:返回 10/10 分且零发现
- 不检查命名一致性(.test. 与 .spec.)——超出范围
- 每个发现使用 MOVE、MERGE 或 DELETE_ORPHAN 之一
- 报告写入 {output_dir}/ln-637--global.md,类别为 "Test Maintainability",检查项包括 layout_pattern、test_source_mapping、flat_dir_growth、domain_grouping、colocation_consistency、fragmented_duplicates
- 当 summaryArtifactPath 缺失时,将独立运行时摘要写入 .hex-skills/runtime-artifacts/runs/{run_id}/evaluation-worker/{worker}--{identifier}.json
版本:1.0.0,最后更新:2026-03-15。