赛事/评审流程实跑硬化(event-fullrun-hardening)
来源:UIBC-MEM 内部热身赛(2026-09-12)13 域 Agent 全流程实跑,实跑抓到 9 条编号项问题(P0×4 / P1×4 / P2×1,子项展开 13 处)+ 回归二轮 10 项,全部闭环。 口径纪律:标题数(子项展开)≠ 编号数(可逐条核验),引用问题时一律以编号项为准(见技能
session-distillation-ledger)。
何时用
- 要验证一套流程(而不是设计它)能真跑通:赛事、评审、作品征集、供应商验收、产品内测。
- 流程里"文件发出去 / 交回来 / 打分 / 发凭证"这类跨主体动作反复出同类 bug。
- 需要"改了但不确定有没有改好"——本技能强制回归验证环节。
核心方法:三阶段(不可省第三段)
| 阶段 | 动作 | 关键约束 | |---|---|---| | ① 实跑 | 用真实子 Agent 扮演各参与方,端到端跑一遍,不预判不放过 | 每方必须真做(真跑脚本/真复算),不得口头声称 | | ② 整改 | 把问题落成 P0/P1/P2 清单,逐项改并留证 | 每个修复必须附可复现证据(命令输出/文件/自检 PASS) | | ③ 回归 | 抽 1/4 参与方按新规则重跑,逐条核"旧问题是否复发" | 不回归 = 不算闭环;回归必暴露二轮新问题 |
契约纪律(三条硬教训)
- 自检的解析基准必须是对外声明的契约(如题包里写的路径字符串),不能是内部常量。 教训:自检工具用内部常量校验,结果内部常量本身就错 → 假 PASS。
- 编号/格式口径由生成器层统一强制(机器字段与人类文案同时写入)。 教训:一个包改好 1 基编号,另一个包的说明文案仍是 0 基,误导选手并被扣分。
- 封存物必须移出发放同树(题库/答案/变体等在另一个顶层目录 + README 警示)。 教训:标了"封存"仍放在发放目录下,回归时被判为泄露风险。
标准流程(七步,含门禁)
- 发放:生成材料 +
MANIFEST 清单与校验和+ 样例对表/校准链;路径自检 PASS 才可发(失败非零退出)。 - 提交:强制"三件套 + 过程留痕"(主件 / 可运行脚本 / 真实输出快照 / 决策时间线),按主体分目录。
- 筛查:形式要件自动 grep(必填章节缺一拦截)+ 相似度/表述比对(只记录,不下结论)。
- 评审:评分细则必须带各维度 3 档锚点 + 关键结论词(如"有条件通过")的客观定义;客观项由主办方按真值核定,与主观项分离。
- 裁决:AI 初审汇总争议 → 人终审。
- 签发:凭证 + ledger(真实哈希)自动生成;高风险签发动作过 A³/审批门禁。
- 复盘:榜单 + 分级分布 + 整改清单三件套定稿。
常见故障与处置
| 故障 | 处置 |
|---|---|
| 材料读不到 | 先核 MANIFEST;声明与实际不符 → 以实际为准并上报(同时修发放工具) |
| 并发读取超时 | 串行降级,单文件 ≤3 次重试,记录"不可达"但继续其余项,禁止整体放弃 |
| 中文路径/编码乱码 | 输出强制 UTF-8;写文件 newline="\n";路径用 os.path 拼接 |
| 结论天然一致 → 防作弊无抓手 | 要求过程留痕 + 准备多套真值不同的变体题并行发放 |
| 弱对照组无处安放 | 单列对照榜(不计主榜名次),并给对照榜专属产出模板 |
参考实现(模板可用)
见 UIBC 工作台 modelscope_社区赛事_20260911/热身赛实跑_20260912/00_组委会/tools/:
publish_materials.py(发放+自检+封存库)、check_submission.py(三件套自动回执)、issue_certs.py(凭证+ledger)、gen_criteria_library.py(规则库 L0/L1 分层)。
Scan to join WeChat group