数据筛选执行器
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3ddd765c/data-filter-executor。
技能介绍
要解决什么问题
在地图 QA 的 qa-integration-pipeline 里,用例生成(case-generator)需要一批「坐标 + 场景 + 可选响应」的数据资产,而这些资产往往来自三种不同来源:上游 diff-executor 的 diff 产物、对 host / hostbaseline 的批量脚本筛选,或历史 AICase 目录里可复用的坐标。若每个 feature 都手工选路径、写配置、跑脚本,策略容易和 test_plan.md 脱节,产物目录也不统一。
Data Filter Executor 是 Pipeline 的 Phase 3 子 Skill:自动读 test_plan.md 里的数据筛选策略与 2.2 数据筛选条件,在本地选方案并执行,把结果收敛到固定目录 //data/,并生成 filter_analysis.md 供下游使用。本 Skill 自动执行,不中断向用户提问;交互由上游 pipeline 负责。
如何工作
前置:校验 feature、test_plan;从测试计划中解析 search-ng-data 标记、筛选条件表与 3.2 测试策略 中的筛选决策。可选地在确定方案或编写 filter_config_*.py 前查询 LLM-Wiki,参考历史 diff / reuse / script 方案与配置模板。
三种方案(三选一):
- 方案 A(diff):
search-ng-data = 是且存在 diff 产物时,读取diff_dir下的manifest.json、expected_diff.txt,按test_plan条件过滤并排除bad_case.md,输出//data/expected_diff.txt与//data/manifest.json。 - 方案 B(script):有明确筛选条件但无 diff 时,初始化 search-ng-data 与 top30citypoints 仓库,生成
filter_config_<feature>.py,在 search-ng-data 目录调用main.py做双版本对比(需host、host_baseline等),产出 baseline/target 结果 JSON 及配置副本。 - 方案 C(reuse):计划标注复用历史数据或存在可用 case 时,扫描
regression_case_dir,按场景关键词匹配并去重,输出//data/preset_cases.json。
执行后会检查结果是否非空;若为空则仍可能返回 success,但标记 data_sufficient: false。最后统一写 数据资产清单 //data/filter_analysis.md,并向 pipeline 返回摘要。
边界与注意点
- 不依赖 Jenkins MCP,筛选逻辑在本地完成;方案 B 强依赖
host/host_baseline与 top30、search-ng-data 目录可访问(缺失时会尝试 clone 固定路径)。 - diff 产物缺失、脚本执行失败、或
test_plan未定义筛选条件时会 failed 并给出明确 reason;diff 为空时会建议改 script 或复用历史数据。 - 输出根目录约定为
/home/xiaoju/map-spec/下的//data/,与 case-generator 的读取路径(如data/filter_analysis.md、各类 JSON/txt)需保持一致。
使用场景
- diff-executor 已产出 diff 目录,需按 test_plan 的 2.2 节表格过滤 manifest 后再交给 case-generator
- test_plan 启用 search-ng-data 但尚无 diff,要对 host 与 host_baseline 跑 top30 批量脚本筛坐标
- 测试计划写明复用历史数据,需扫描 regression_case_dir 下 AI_Case 并输出 preset_cases.json
- qa-integration-pipeline Phase 3 自动跑完筛选,在 //data/ 生成 filter_analysis.md 供下游读资产概况
适合人员
- 维护地图 QA qa-integration-pipeline、希望 Phase 3 按 test_plan 自动产出 //data/ 资产的测试开发
- 编写 test_plan.md 中 2.2 数据筛选条件,需要本地执行 diff/script/reuse 而非手工跑 Jenkins 的 QA 工程师
- 对接 case-generator,依赖 filter_analysis.md 与 baseline/target JSON 做用例生成的流水线集成同学
- 在新 feature 上基于 search-ng-data 编写 filter_config_<feature>.py 并做双版本对比筛选的地图检索测试同学