用途:这是 switchyard 的合并前门禁技能,在提交或更新 MR 前运行 tests/e2e/ 中的实时端到端生产测试,验证请求处理器、LLM 后端、响应处理器与翻译引擎在三种入站格式(OpenAI Chat Completions、OpenAI Responses、Anthropic Messages)下的完整链路,并输出便于截图粘贴到 MR 的 Markdown 汇总。
主要能力:默认以 tests/e2e/ 为 pytest 目标,可用 test_path 覆盖到单文件或单个测试;支持 extra_args 追加 pytest 参数;默认同时运行 uv run ruff check .,可选 also_typecheck 运行 uv run mypy switchyard;maxfail 默认 5,达到上限会提前停止并标记为“FAIL — INCOMPLETE”。
使用方式:需在 Switchyard 仓库根目录运行,先确认存在 .venv(否则运行 ./setup.sh --dev),并配置 NVIDIA_API_KEY 环境变量或 secrets/secrets.json 中的 nvidia 段。测试命令形如 uv run pytest {test_path} -v -o addopts= --maxfail={maxfail} {extra_args},日志写入 /tmp/pre-merge-checks/。该技能要求关闭沙箱(dangerouslyDisableSandbox: true),因为需要写入 /tmp/pre-merge-checks/、~/.cache/uv/ 及仓库工作树。
适用场景:改动 switchyard/ 或 crates/ 后、打开或更新 MR 前;需要真实上游 API 验证时。
限制:测试会调用真实 NVIDIA 推理 API,产生真实 token 消耗,完整运行约 1–3 分钟并有少量费用;缺少凭据时不应继续运行,否则测试全部跳过会产生误导性的绿色结果;test_verify_e2e.py 在未安装 claude/codex CLI 时会跳过,属正常现象;该技能不会提交、推送或创建 PR。