Diff 执行与分析器
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3ddd765c/diff-executor-and-analyzer。
技能介绍
要解决什么问题
在 QA 集成流水线(Phase 2)里,功能变更往往需要在目标环境与基线环境上跑同一批请求,再对照 test_plan.md 里的「预期差异」判断 diff 是符合设计还是回归。手工触发 Jenkins diff Job、拉产物、逐条比对字段与变化方向,既慢又容易漏判。
本 Skill 作为 Phase 2 子 Skill,负责把「触发 diff → 读结果 → 分类 → 出报告」串成一条可自动跑完的路径,并把 unexpected_diff_count 等摘要交回上游 qa-integration-pipeline,由流水线决定是继续 Phase 3 还是打断询问用户。
如何工作
外部交互一律走 Jenkins MCP(如 build_item、get_queue_item、get_build、jenkins_get_artifacts、jenkins_download_artifact),不直接在本地 shell 里跑 diff。
典型流程可以概括为:
- 前置校验:
feature、host、host_baseline、test_plan等必填项,以及test_plan.md是否可读 - 触发构建:默认 Job 名
ng_diff_new(可覆盖);build_item返回的是队列 ID,需用get_queue_item拿到真实build_number,再轮询至SUCCESS/FAILURE/UNSTABLE - 多组 diff:若
test_plan里配置了experiment_config,按none/ab_test/grayscale分别跑 1 次或 2 次 diff,各组driver_id来自groups[],产物按组名落盘并在根目录汇总 - 读产物:下载
summary.txt、diff_details.jsonl、按接口字段拆分的详情、route_link_mapping.json等,以diff_details.jsonl作为逐条分析输入 - 分类:从 testplan 4.2 预期差异解析场景、字段、基线/目标值与 direction;单条 diff 需字段名与变化方向同时匹配才记为 expecteddiff,否则进入 unexpected_diff
- 输出:各组或汇总路径下的
bad_case.md、expected_diff.txt、manifest.json,并返回 JSON 摘要(含diff_type、group_results等)
可选地在 Step 5 前查 LLM-Wiki,参考历史预期差异定义与 bad case 模式,减少边界误判。
边界与注意点
- 本 Skill 自动执行,流程中不向用户提问;人机交互由上游
qa-integration-pipeline承担。 - Jenkins 构建失败或
UNSTABLE时,应拉日志并返回 FAIL,不会假装分析成功。 - 多组实验时,根目录路径指向汇总产物;各组明细在
diff/{group_name}/下,下游需区分汇总与分组 manifest。 driver_id在单次 diff 时有默认值;多组场景以test_plan.experiment_config.groups[].driver_id为准,不再依赖全局默认参数。
使用场景
- 功能联调 Phase 2 需在目标 host 与基线 host 上跑 ng_diff_new,并按 test_plan 4.2 表格自动区分 expected 与 unexpected diff
- test_plan 配置了 ab_test 或 grayscale 时,要分别用对照组/实验组 driver_id 各触发一次 Jenkins diff 并汇总 bad_case
- Jenkins diff Job 成功后需拉取 diff_details.jsonl 与 summary.txt,生成 bad_case.md 供流水线判断能否进入 Phase 3
- 发布前发现 diff 率告警,需要对照 test_plan 预期差异方向逐条核对字段变化,而不是只看 Jenkins 控制台汇总
适合人员
- 维护 qa-integration-pipeline Phase 2、希望 diff 触发与产物解析全自动、只收 unexpected_diff_count 的集成工程师
- 编写 test_plan.md 预期差异表、需要 Jenkins 批量 diff 结果与表格定义一一匹配的地图/导航 QA
- 负责 AB 或灰度实验对照组配置、要在同一 feature 目录下按组落盘 diff 产物并做汇总报告的测试开发
- 日常手动点 Jenkins ng_diff_new 并下载 output 产物,想改成 MCP 编排且失败时自动拉构建日志的同学