Skip to content

superseded: task contracts moved to evaluation integration #335

Closed as not planned

Description

@Bounty-hunter

Current state: 按用户明确委托取消独立“共享接口”分工,范围迁入 #337,并由 #336 复用任务契约;本 Issue 以 not planned 关闭,表示合并跟踪而非全部接口已验收。
Decision needed: 本次范围迁移的关闭无需另行决定;剩余交付和项目验收继续在 #337/#336/#252 记录。
Next action: 共享接口的实现/缺口随 #337 和对应 PR 推进,任务作者约束随 #336 维护。

内容去向

原工作 后续归属
TaskPackage、候选/任务身份、真实产物交接、执行与结果接口 #337:接入现有执行与评测流程
题包输入、正确性依据、测量边界及新增任务适配 #336:长期任务库建设,复用同一接口
当前实现 review 仍由 Draft PR #338 承接,不因本 Issue 关闭而消失

接口说明继续维护。Canonical-loader finding 已由原 reviewer 清除;NPU action/total-timeout P2仍未解决,留在 #338 修复。NPU 产物执行边界和真实 Agent 接入仍属 #337 待补能力。

关闭原因、现有证据与限制见本 Issue 的范围合并说明评论。Parent #252;当前两项工作。此次关闭不表示整个 PR 已批准、NPU 隔离已建立或项目验收完成。

Activity

  1. added
    area:workbenchCLI workbench: profile, A/B loop, quality gates, evidence reports
    kind:taskBounded delivery task with a delegated slice
    on Nov 3, 2026
  2. agent-ci-infra-bot commented on Nov 3, 2026

    @agent-ci-infra-bot

    本 Issue 是 #252 的子项 02:交付首版冻结任务契约(TaskPackage、task/grader/candidate/runtime 身份冻结、check/measure/profile 分离),并把是否接受该范围交由 @Dong1017 决定。结论:需要人工决策——依赖的范围决定与验收证据尚未落地,Issue 自身没有显式请求代码改动。Labels: kind:task, area:workbench, status:proposed, priority:P2(有界交付任务、属于 workbench 基准线、状态块有具体待决问题且无已记录决定;priority 为猜测)。

    F1 — 高,需修复,交付物未与评审对象绑定


    F2 — 高,需人工决策,依赖的范围决定未记录且四个子项被一次性交付


    F3 — 中,需修复,验证结果缺少可定位记录

    • 证据: Issue 的“已实现;26 项专项回归覆盖真实子进程、身份漂移、缺依赖与超时。安装包读取和实际执行通过”没有链接命令、日志或运行记录。PR feat: add shared engineering task evaluation and Ascend RMSNorm #338 正文说明完整原始日志与样本仍在本地,只提交汇总,并记录完整回归为 3479 passed、51 skipped、56 个失败报告(55 个用例声称在未修改基线复现)。
    • 影响: 评审者无法区分通过、失败、跳过与未运行,复选框结论只能依赖本地声称,不能作为范围验收的证据。
    • 建议: 链接固定 SHA 的 validation.md 与 validation-summary.json,列明实际执行的命令、环境和结果,并说明完整回归未通过项的基线复现方式;把 26 项专项测试与完整回归分开陈述。

    F4 — 中,需修复,未在 Issue 记录候选代码执行为非隔离

    Reviewed commit: 663f3b3
    Coverage: Checkout: 2645 files at 663f3b3 in a git worktree with the repository's history

  3. added
    priority:P2Decide or start after this week. Only with status:proposed or status:accepted
    status:proposedWaiting for the decision named in the status block
    on Nov 3, 2026
  4. agent-ci-infra-bot commented on Nov 3, 2026

    @agent-ci-infra-bot

    本 Issue 请求为工程基准建立首版冻结共享契约(TaskPackage、task/grader/candidate/runtime 身份冻结、check/measure/profile 分离),让 Workbench 与离线评估读取同一任务事实;更新后的正文已把实现绑定到 Draft PR #338(head d0ce9d78)和固定 SHA 的验证记录。核验:快照与 PR head 一致,交付文件与 26 项参数化专项用例确实存在,PR 的 full-check 3.10/3.11、installed-package 3.10/3.11 检查为成功;但验收仍取决于 #334 的范围决定,且 PR #338 上 @Dong1017 的 P2 评审指出计时输入复用同一数组,本 Issue 的复选框未覆盖该测量有效性风险。结论:需要人工决策(human decision required),Issue 未显式请求代码改动。

    Earlier bot findings:F1 fixed(正文已链接 PR #338 与 d0ce9d78);F3 fixed(validation.md/validation-summary.json 已按固定 SHA 链接);F2 open(#334 仍为 status:proposed,无决定记录;#334–#337 仍由一个 PR 交付);F4 open(Checks and limits 仍未写明候选代码无隔离、无资源限制)。

    Labels: kind:task, area:workbench, status:proposed, priority:P2(有界交付任务、workbench 基准线、状态块有具体待决问题且无已记录决定;priority 为猜测,沿用 #334)。

    F5 — 高,验收前需解决或明确约束 — 计时复用同一输入对象,记忆化候选可被计成加速

    • Where: PR feat: add shared engineering task evaluation and Ascend RMSNorm #338 head d0ce9d785e1bead9124eed1cf3f6e9f2e0cf05db:src/inferrsi/harness/benchmarks/numpy_task.py:94 预检调用 compute(x, ...),:97 把同一个 x 对象放入 prepared,:119-125 的 warmup/sample 循环对同一数组对象重复调用;同一问题已由 @Dong1017 在该文件第 125 行锚定(PR feat: add shared engineering task evaluation and Ascend RMSNorm #338 评审,2026-11-03T15:00:54Z)。
    • Problem: 预检、warmup 与计时样本共享同一个 x 对象和内容。候选只要按 id(x) 或内容缓存返回值,每次调用都返回正确输出,能通过全部数值与输入保持断言,而计时大部分量到的是查表/回放而非算子计算。现有回归 tests/test_engineering_benchmarks.py::test_checks_repeated_timed_calls_not_only_initial_call 只覆盖“输出变错”的候选,不覆盖“输出正确但被缓存”的候选。
    • Conditions: 候选使用 functools.lru_cache、以输入内容/id 为键的字典缓存,或保留上次结果;baseline 不缓存时对比更明显。
    • Impact: suite_latency_ms(aggregation = sum-of-per-case-medians)低估候选耗时,Workbench/SkillEval 的 A/B 可得出伪造加速,恰好落在本 Issue 勾选的“冻结…测量规则”“两个消费者读取同一任务身份/测量规则”核心上。
    • Fix: 在计时边界之外准备冻结的成对变化输入序列(baseline 与候选相同),每次计时调用传入不同数组对象/内容并逐次校验,补一个记忆化候选的负向回归;若不扩大该切片,则在 docs/plans/issue-252/02-contract.md、任务 coverage 与本 Issue 的 Checks and limits 写明“重复输入不防缓存回放”,并把验收结论限定在此范围。

    F2 — 高,仍需人工决策(沿用上一轮编号)— 依赖的范围决定未记录,四个子项仍由一个 PR 交付


    F4 — 中,仍需修复(沿用上一轮编号)— Checks and limits 仍未写明候选代码无隔离、无资源限制

    • Where: 本 Issue “Checks and limits”;PR feat: add shared engineering task evaluation and Ascend RMSNorm #338 src/inferrsi/harness/benchmarks/numpy_task.py:74 用 exec(compile(source, "implementation.py", "exec"), namespace) 直接加载候选源码。
    • Problem: 正文更新后,“Checks and limits”仍只写依赖子项 01 的范围决定与 adapter 限制,没有说明候选代码由现有执行器/子进程执行、哈希冻结不提供恶意代码隔离或资源上限;PR 正文与 docs/plans/issue-252/02-contract.md 已写“hostile-code sandboxing … not established”。
    • Conditions: 任何后续消费者把不可信候选接入该契约时。
    • Impact: 对 superseded: task contracts moved to evaluation integration #335 的接受可能被读作对执行安全性的确认。
    • Fix: 在 Checks and limits 补一句:候选代码在现有执行器中运行,没有恶意代码隔离与资源限制,属未覆盖范围。

    F6 — 中,需人工决定 — grader 身份覆盖整个 harness/benchmarks 包,而非仅判分实现

    • Where: PR feat: add shared engineering task evaluation and Ascend RMSNorm #338 src/inferrsi/harness/benchmarks/contract.py:33-34(grader_digest() 对 Path(__file__).parent 做整树哈希)、:77-79(assert_unchanged 比对)、:82-89(identity() 写入 grader_sha256)、worker.py:37,42(执行前后各比对一次)。
    • Problem: 冻结的“grader”身份包含 contract.py、worker.py、cli.py、consumers.py、numpy_task.py、skill_verifier.py 等全部模块;任何后续修改(例如新增 CLI 选项或 adapter)都会改写所有任务的 grader_sha256,使留存产物中的身份比对变为“changed”。
    • Conditions: 下一次修改 src/inferrsi/harness/benchmarks/ 下任意文件后重放既有验证产物。
    • Impact: 接受“内容冻结”实际等于接受包级冻结:无关代码改动会让既有证据不能复用,消费者接入时必须重新生成身份。这是设计取舍,需要验收人明确。
    • Fix: 在 docs/plans/issue-252/02-contract.md 明确冻结范围;若只想冻结判分语义,改为只哈希判分实现(如 numpy_task.py 与 oracle 相关文件);若确为包级冻结,则写入任务 coverage 与本 Issue 限制,供后续消费者遵循。

    Reviewed commit: 663f3b3
    Coverage: Checkout: 2645 files at 663f3b3 in a git worktree with the repository's history

  5. changed the title [-]task: add a frozen shared task contract for engineering benchmarks[/-] [+]task: share task inputs and evaluation rules across RSI consumers[/+] on Nov 3, 2026
  6. agent-ci-infra-bot commented on Nov 3, 2026

    @agent-ci-infra-bot

    本 Issue 是 #252 的子项 02:要求把任务包、候选入口、check/measure/profile 与内容冻结固化为一份共享契约,并请 @Dong1017 记录是否接受该范围。本轮编辑在正文顶部新增了交付说明段,并把说明链接指向 PR #338 的新 head ac03ae23;我在该 head 上核验:F5(计时输入复用同一对象)已由 numpy-axis1-v2 变化输入协议修复,tests/test_engineering_benchmarks.py 以安装包方式运行 40 passed,hosted checks 全部 success;但 F2、F4、F6 仍无记录,且正文现在同时钉住 v1 与 v2 两个快照。结论:需要人工决策,Issue 自身未显式请求代码改动。Earlier findings: F1 fixed;F3 fixed;F5 fixed(v2 逐次不同输入 + 每样本输入哈希,numpy_task.py:102-118、:187-190);F2 open;F4 open;F6 open。

    F7 — 高(需修复)— 正文同时钉住 v1 与 v2 两个快照,验收对象无法确定

    • Where: 正文顶部新增的 本子项说明 / 总任务及四项分工 链接指向 ac03ae23,而 源码快照 d0ce9d78…、Inputs and deliverables 四个链接、公开结果见 验证记录/原始汇总 仍指向 d0ce9d78;Checks and limits 仍写 首个 adapter 为 numpy-axis1-v1 与“26 项专项回归”。
    • Problem: PR feat: add shared engineering task evaluation and Ascend RMSNorm #338 的 head 已是 ac03ae23(4 个提交),其 contract.py:183 只接受 numpy-axis1-v2,两个 task.json 也声明 numpy-axis1-v2;该 head 的 validation.md:3 明确写“本页保留 v1 历史运行…不能代表后续 v2 变化输入协议”,当前证据改在 replay-validation.md:17(“40 项通过”)。正文现在把一个已改语义的契约按两个提交混写:v1 是重复输入、26 项回归,v2 是逐次变化输入、40 项回归,且 grader 身份与计时 case 数均已变化。
    • Conditions: @Dong1017 依据当前正文对“首版 TaskPackage、内容冻结和三类操作接口”作出接受/推迟决定时。
    • Impact: 验收记录既不能绑定到具体修订,也无法区分被接受的是 v1 还是 v2 语义;把 v1 的 validation.md 当作 v2 契约的证据,会让“冻结的测量规则”这一勾选项对应到已被修复的旧协议。
    • Fix: 统一钉到 ac03ae23:更新 源码快照、Inputs 链接、公开结果(改为 replay-validation.md + replay-validation-summary.json)、adapter 名 numpy-axis1-v2 与专项用例数(40);或整体保留 d0ce9d78 并删除本轮新增的 ac03ae23 链接,同时在正文写明被接受的修订版。

    F2 — 高(需人工决策,沿用上一轮编号)— 依赖的范围决定仍未记录,四个子项仍由一个 PR 交付


    F4 — 中(需修复,沿用上一轮编号)— Checks and limits 仍未写明候选代码无隔离、无资源上限

    • Where: 正文 Checks and limits 段。
    • Problem: 该段只写依赖子项 01 与 adapter 限制,没有说明候选代码由现有执行器在子进程中直接 exec 运行(numpy_task.py:85),哈希冻结只证明内容不变、不提供隔离。PR feat: add shared engineering task evaluation and Ascend RMSNorm #338 的 head 已多处写明同一限制:cli.py:25 的候选参数帮助写着 “no security sandbox”,consumers.py:14 写 “not an untrusted-code sandbox”,task.json 的 coverage 写 “no hostile-agent isolation”,replay-validation.md 也写“不提供恶意代码隔离或隐藏测试”;只有本 Issue 的限制清单缺失这一条。
    • Conditions: 后续消费者按本 Issue 的验收结论接入未经审核的候选时。
    • Impact: 对 superseded: task contracts moved to evaluation integration #335 的接受可能被读作对执行安全性的确认,而实际契约没有恶意代码隔离、资源或时限保证。
    • Fix: 在 Checks and limits 补一句:候选代码在现有执行器/子进程中运行,没有恶意代码隔离与资源上限,属未覆盖范围。

    F6 — 中(需人工决定,沿用上一轮编号)— grader 身份覆盖整个 harness/benchmarks 包,而非仅判分实现

    • Where: contract.py:33-34(grader_digest() 对 Path(__file__).parent 整树哈希)、:78-80(assert_unchanged)、:87-93(identity() 写入 grader_sha256)、worker.py:37,42(执行前后各比对一次)、skill_verifier.py:35(保留产物身份变化即报错)。
    • Problem: 冻结的“grader”包含 contract.py、worker.py、cli.py、consumers.py、numpy_task.py、skill_verifier.py 等全部模块。ac03ae23 为修复 F5 只改了 numpy_task.py,两个任务的 grader 身份就整体变化(replay-validation.md 记录“任务、grader 身份和指标的五 case 聚合均已变化”);今后任何 CLI 选项或消费者改动都会让所有留存的 identity.json 与产物验证变为“changed”。
    • Conditions: 下一次修改 src/inferrsi/harness/benchmarks/ 下任意文件后重放或复核既有验证产物时。
    • Impact: 接受“内容冻结”实际等于接受包级冻结:无关代码改动会使既有证据不能复用、保留产物无法通过 verifier,消费者必须重新生成身份。02-contract.md 只写“用内容哈希冻结包、grader 和候选”,没有说明这一范围,验收人无法据正文作出判断。
    • Fix: 在 02-contract.md 与本 Issue 的限制中写明冻结范围为整个 harness/benchmarks 包及其后果;若要冻结的只是判分语义,改为只哈希判分与 oracle 相关实现(如 numpy_task.py 及 oracle 常量)。

    Reviewed commit: 663f3b3
    Coverage: Checkout: 2645 files at 663f3b3 in a git worktree with the repository's history

  7. changed the title [-]task: share task inputs and evaluation rules across RSI consumers[/-] [+]task: define shared task contracts and canonical evaluation rules[/+] on Nov 4, 2026
  8. changed the title [-]task: define shared task contracts and canonical evaluation rules[/-] [+]task: share task contracts and NPU evaluation rules[/+] on Nov 4, 2026
  9. changed the title [-]task: share task contracts and NPU evaluation rules[/-] [+]superseded: task contracts moved to evaluation integration[/+] on Nov 4, 2026
  10. Bounty-hunter commented on Nov 4, 2026

    @Bounty-hunter
    Author

    范围合并说明:接口随接入和任务实现继续进行

    用户已明确要求按两项工作整理,并关闭不再独立跟踪的旧 Issue。本 Issue 以 not planned 关闭,表示分工合并,不表示全部功能已完成或项目已验收。

    flowchart LR
        A["#335 共享接口"] --> B["#336 题包契约与任务适配"]
        A --> C["#337 执行、产物与结果接入"]
        A --> D["旧 Issue 结束独立跟踪"]
    
    Loading
    范围与证据身份

    文档整理版本 125b06451a487e76a1c20c45abe4e22cd8631d68;NPU 实测源码仍为 6308268fc6d1fbf90e9ab97b5da8af79152f39ea。当前变更仅文档和任务组织。Canonical-loader 的具体 finding 已获原 reviewer 清除,不等于整个 PR 获批。

    本次关闭依据是用户对范围合并与弃用项关闭的明确委托。没有新的 accepted implementation revision;#252、#336、#337 的项目接受/验收和 #338 合并仍分别记录。关闭不删除原讨论、研究、历史运行或失败记录。执行人为 Codex,accountable implementer 为 @Bounty-hunter。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:workbenchCLI workbench: profile, A/B loop, quality gates, evidence reportsbot-reviewedkind:taskBounded delivery task with a delegated slicepriority:P2Decide or start after this week. Only with status:proposed or status:acceptedstatus:proposedWaiting for the decision named in the status block

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions