用途:当用户交来一个 dsh 插件仓库、一条版本走廊或一个真实迁移 commit,并希望把升级经验变成可执行评测(考题/case/benchmark task)时使用;也用于测试 AI 是否会按现有升级卡修改插件。目标是产出放在 ./benchmark/ 下的 Harbor 格式考题,遵循 BENCHMARK-AUTH-v1 执行契约,评分模型固定为每题 100 分。
主要流程分七个阶段。Stage 0 选材:确认迁移方向(git 历史中由 host 升级导致的必需改动)、可测性(容器内能装上并冷启动得到确定信号)、是否已有对应升级卡;纯自研重构或无宿主侧断裂的 commit 不成题。Stage 1 骨架与命名:任务目录 tasks/<id>/,前缀 S(静态只读)/M(迁移可改)/H(hands-on 陷阱),编号接该系列现有最大值,含 instruction.md、task.toml、environment/(Dockerfile 与 fixture)、tests/(test.sh、judge.mjs、judge-utils.mjs)、solution/(solve.sh、SOLUTION.md、plugin/)。Stage 2 fixture 构造:必须 private:true,README 首行标注“exam material only, do not publish”,坑须来自真实迁移,坏必须可观察。Stage 3 judge 设计:三段式(Gate 静态 运行时),锚为宿主侧信号,如 plugin tree failed / pending / MISSING_CREDENTIAL / DSH_BOOT.entries。Stage 4 oracle:solution 覆盖进 fixture,SOLUTION.md 写明 Reference Changes、The Point、Grading Boundary。Stage 5 四连注册表同步(README、scoring.md、validate-execution-contract.mjs、卡引用)。Stage 6 校验与 oracle 自检:node scripts/validate.mjs、validate-task-registry.mjs、validate-execution-contract.mjs,以及 harbor run -p benchmark/tasks/<id> -a oracle 须得 1.0。
必要命令:Dockerfile 固定 FROM node:24-bookworm,npm install -g pnpm@11.24.0 @deepseek-ai/dsh@0.1.2-alpha.2,版本与现有任务一致,勿改。judge 只使用 bench-<task> profile 与 /tmp/bench-<task> 并在 finally 清理。
适用场景:为 dsh 插件升级技能构建评测集、验证升级卡有效性、生成负例矩阵。限制:无浏览器容器只能判 boot 图条目或 HTTP 状态,client 运行时行为不判;harbor CLI 在本机沙箱可能装不上,需用 docker 手动等价路径验证;卡引用须为全 ID 且链接可解析。选择分类为编程与开发。