任务:没有槽位的条目不把空槽位交给核对产物的检查

整份不受理时,被排除的条目已经不再跑检查(任务 hub-exclude-fix,ac1be54)。修这件时终端报了同一类问题的另一半:受理的提交里,条目声明跳过或者没有覆盖时,没有槽位,核对待判定产物(judges: artifact_under_verification)的检查照样会拿到空槽位。包的检查函数于是报出“槽位数据不是对象”“bucket 不是字符串”这类驳回。这样的驳回指向的是模型没有交、也不该交的东西:它可能进修正说明、计修复轮,让模型去改一个它已经声明跳过的条目。

  • 分支和工作树:hub-empty-slots,目录 circle-hub-empty-slots(依赖已装好)
  • 可以改的路径:hub/runs/engine/** 和对应的测试、README。别的路径不动;合约缺什么先回报。
  • 规则:同前(不推送、不建 PR、不发布、不部署;不碰 7420、钥匙串、环境配置文件和任何真实系统;测试只用合成数据;git commit -s)。
  • 验证:npx tsc --noEmit;node --test --test-concurrency=1 对 hub/runs/**、packs/**。

要做的

  1. 先查清现状,照实回报:受理的提交里,条目的处理是跳过(skipped)和未覆盖(not_covered)时,核对待判定产物的检查是不是真的拿到空槽位,有没有驳回进修正说明、有没有计修复轮、条目最后进哪个分区。用合成包分别钉住这几种情况。
  2. 按模型(V05 分区、W02 修复、W07 覆盖)定改法,原则:没有待判定产物,就没有对它的判定。
    • 跳过的条目,核对产物的要求项记“声明跳过”(已有的原因,W07 R[2]);
    • 未覆盖的记“未覆盖”;
    • 都不跑那些检查,不出驳回,空产物检查也不再造成修复轮。

    覆盖的记账照模型办:W07 R[3] 规定提交未覆盖的条目在 errors 里点名、计入修复轮数,这一条不改(10-23 更正:本页原来写“不计修复轮”,和模型不符)。

    只核对评审对象本身的检查(例如脑图结构)不受影响,照常跑。

  3. 改法和模型的读法写进引擎 README;如果哪个包依赖现在的行为(例如对空槽位返回“已声明跳过”的支持),在任务结果里列出来,包的改动另开任务,这件不改包。
  4. 测试:每种情况都有正例和反例,并且覆盖一个条目跳过、另一个正常的混合提交。

完成后在终端里回报:提交号、测试数量、没做完或拿不准的地方。