Repository navigation
Conversation
The W3 gates lived in three separate workflow files, and w3-nightly.yml declared the same 23:23 nightly schedule as llm-deploy.yml, so the scheduled W3 run was driven from two files at once. The LLM entry points were split across files for no benefit. Fold w3-preparation and w3-full-numeric into llm-deploy.yml as jobs of that pipeline, drop the w3-validation indirection job, and delete the former w3-preparation.yml, w3-full-numeric.yml and w3-nightly.yml. The nightly is now declared once. Job-level concurrency groups are preserved with their distinct groups, and the expensive W3 jobs keep the same opt-in guards (run_w3_validation on dispatch, W3_NIGHTLY_ENABLED on schedule) with no continue-on-error, so a failing numeric gate still fails the run. Also delete linux-reproduction-docs.yml, which only ever ran check_linux_repro_docs.py --check-bash over README/CONTRIBUTING and benchmarks; the unfiltered pytest run in ci.yml still covers test_linux_repro_docs.py. Repoint everything that referenced the deleted files: tests/test_w3_workflows.py now anchors on job ids in llm-deploy.yml and asserts the folded files are gone, scripts/package_w3_repro.py ships llm-deploy.yml as the CI recipe instead of .github/workflows/w3-*, and the W3 docs and the full-model probe README point at the merged pipeline's jobs. Co-Authored-By: Claude Code <noreply@anthropic.com>
🤖 AI Code Review
📁
|
The step summaries mixed English prose with bilingual "English / 中文" strings. Make the prose Chinese across the pipelines while keeping identifiers and status tokens in English. Kept in English on purpose: gate and step ids (numeric:ir-qwen3-small, unit:frontend-ops), metric names, artifact names, tool names, W1/W2/W3, and every label that starts with a status token (PASS, FAIL, NOT RUN, CANCELLED, UNCONFIRMED, MISSING REPORT, INVALID REPORT, PARTIAL/INCOMPLETE (not acceptance), FAIL (step did not succeed)). GitHub outcome tokens such as success/failure/skipped are echoed unchanged, so a step's raw result stays greppable and the existing assertions on it keep working. Left alone: the shared renderers in probes/numeric_summary.py and probes/w3_summary.py, which feed both the CI summary and the archived report.md artifacts and were already Chinese; and the benchmark reports that ci.yml cats into its summary, which belong to the individual benchmark scripts. Tests updated where they pinned the old wording: test_w2_actions_summary asserted the bilingual strings and the "No ... acceptance result" phrase; test_w3_actions_summary asserted "No full-model QEMU result", the "... cases recorded" coverage strings and the NOT RUN tally, which drops from 5 to 4 because "NOT RUN by this job" is no longer an English token; test_w3_workflows asserted the two W3 acceptance and execution-scope sentences. Co-Authored-By: Claude Code <noreply@anthropic.com>
"自动门槛", "必过验收" and "W2 前端、后端与宿主运行时" were newly
invented labels with no prior use in this repository, so they cannot be
looked up or checked by a reader. Replace them with wording the repo
already owns:
- "W3 automated gates" -> "W3 验收" (job name "W3 / required
acceptance"; "CI 验收",
docs/llm-deploy-v1.0/开发计划.md:148)
- "W2 required acceptance" -> "W2 验收" (job name "W2 / required
acceptance")
- "W2 frontend, backend and host runtime"
-> "W2 单元门槛" (step name "Summarize W2
unit gates"; "单元测试",
开发计划.md:154; "硬门槛",
开发计划.md:160)
The remaining translated strings reuse existing repository vocabulary
(批准, 签署, 寄存器分配, 不变量, 流水线耗时, 门槛, 验收, 用例, 覆盖).
Co-Authored-By: Claude Code <noreply@anthropic.com>
Give every summary section a plain "W<N> 测试项" heading instead of a bespoke descriptive title, so the section name is uniform and directly identifies the week under test: W2 unit gates -> "## W2 测试项" W1 交付物状态 -> "## W1 测试项" probe:qwen3-onnx -> "## W1 测试项" (job "W1 / full Qwen3 ...") frontend:parse-qwen3 -> "## W2 测试项" (job "W2 / complete Qwen3 frontend") w3-acceptance -> "## W3 测试项" w3-execution-summary -> "## W3 测试项" check_w2_ci_results -> "## W2 测试项" summarize_w3_ci.py -> "## W3 测试项" The prepare/full distinction that the W3 titles carried is already in the body text, and the summary reference now points at the job ids "w3-preparation" and "w3-full-numeric" instead of the old titles. Co-Authored-By: Claude Code <noreply@anthropic.com>
Four Chinese labels were translations of English terms that have no prior use in this repository, so a reader has nothing to check them against. Restore the original wording: "探针" -> "Probe" / "probe step did not complete" "完整七用例" -> "Complete seven-case" "记录覆盖" -> "Recorded coverage" "概要预算" -> "summary budget" Terms the repository already owns stay in Chinese: 门槛 (20 files), 验收 (45), 回归测试 (20), 流水线耗时 (1). "测试项" is the user's own wording for the section headings and is unchanged. Co-Authored-By: Claude Code <noreply@anthropic.com>
dfefb00 translated "host IR" into "宿主 IR" in the W3 summary table. probes/w2_runtime/README.md already titles this axis "W2 Host 运行时验收", so keep the English term here too. Co-Authored-By: Claude Code <noreply@anthropic.com>
The W2 Actions page dumped every probe's report.md plus per-step outcome lines from four steps across three jobs, which answered none of the questions the W2 gates exist for. Add scripts/summarize_w2_ci.py, which renders exactly three tables from the six output/<dir>/report.json reports: which operators each layer supports (marking only the ones this run actually exercised), the worst max_abs / relative_l2 / cosine against ORT and the independent NumPy references, and the per-chain timing plus a total. The w2-acceptance job downloads the four W2 artifacts and becomes the single writer of the W2 section. Every other W2 summarize step now writes to the step log instead, as does scripts/check_w2_ci_results.py, whose exit code remains the acceptance gate. Co-Authored-By: Claude Code <noreply@anthropic.com>
No description provided.