数学建模代码编写评价 Skill
定位:这是一套“赛题+论文+代码”对照评审技能。代码是评分主体,论文是核验依据——从论文里抽出“这一问声称用了什么模型、什么参数、应该给出什么数值/文件”,再到代码里逐项找证据。 依据:
references/rubric_代码评价.md(8 点链、六域二十六项、评分、低 AI 味规范)+references/评审维度与报告结构_全面版.md(资格红线与 12 节报告结构)+references/official/(含 2026 格式规范的程序/支撑材料条款)+ 用户赛题、论文、代码。 边界:官方不直接评代码;输出是非官方、工程化参考,不给奖项位次,不把论文当论文评分对象。
何时使用
用户给出一道数学建模题的赛题、参赛论文和代码,并要求“评代码 / 查代码和论文是否一致 / 自查参赛材料 / 给代码打分”。只给论文要评论文时,应转论文评价技能。
输入要求(三项必给)
- 赛题:原文粘贴、PDF/文本路径,或只给年份+题号(A/B/C)。后者仅当命中技能内置
references/problem_texts/时可用,否则必须提供原文。 - 论文:参赛论文全文(PDF/MD/txt/Word)。扫描件走技能自带
scripts/ocr_pdf.py;公式和图表识别不保真时按语义级评审并标注。 - 代码:
.py/.m/.ipynb、整个目录或压缩包;多文件时说明入口与运行方式,尽量附带依赖清单和所需数据。
三项缺一即停:在报告/对话中列出缺哪一项、怎么补,补齐后再出正式评价。用户主动要求“先给初步意见”的除外(仍须在结果中标注“材料不全,仅初步”)。
评审流程(严格按序)
- 清点材料:确认赛题、论文、代码齐全;缺料按上节处理。
- 拆题冻结:把赛题按问切分,每问列出“要建什么模型、给什么数值/方案/文件、有什么红线”。命中
references/problem_texts/时叠加赛题文本与官方要点;不命中就按用户赛题原文。检查点列全后冻结,中途不增删、不放宽收紧。 - 抽论文口径:逐问从论文找“声称的模型、关键公式/参数、题给参数的使用、应输出的结果与附件命名”;记录证据位置(页/节/公式编号/表格)。论文没有的内容不得脑补。
- 建映射:赛题小问 ↔ 论文声称 ↔ 代码载体(文件/函数/类/脚本),明确哪问缺代码或只有 README 注释。
- 读码与运行:先看目录结构、入口和数据流;能跑就实际运行并记录输出;依赖缺失/附件缺失/MATLAB 无环境等跑不了时,静态审并给复现步骤。扫描论文/附录提取走技能自带
scripts/ocr_pdf.py、scripts/extract_code.py(OCR 需要本机有可用 Python 与 pymupdf/rapidocr,缺失时请用户提供 OCR Python 路径);提取的代码一律按“语义级评审”,标[OCR-LOW],不臆断字符级错误。 - 8 点链核验:沿 rubric 链 1–8 逐层给 结论+证据+一句话说明;再出环节画像与错误传播。
- 资格红线与六域补全:先判 Q1–Q3(附录/支撑材料是否含完整可运行源程序;能否在干净环境运行;结果是否与论文一致),再按六域二十六项补全正确性、数值稳定性、数据链路、可复现性、工程质量、验证测试等横向维度。这两步用于查漏:正文只写影响结论的部分,完整覆盖情况放附录。
- 汇总问题:先扫 rubric 红牌清单(R1–R26),再按 P0/P1/P2 汇总;每条写位置、问题、依据、改法。资格红线问题使用 Q 编号并置顶。汇总结果同时是检测报告和《改进建议报告》的输入,两份报告编号保持一致。
- 评分:按 rubric 的 A/B/C 子项合成参考分,并给六域 0–5 画像;不给位次。
效率规程(控制检测成本,先快后深)
- 快检优先(目标 ≤10 分钟):① 干净副本跑通并记录首次失败原因(缺目录/缺依赖都算发现);② 独立探针复算 ≥3 个关键量(自己写 30–60 行脚本,不重跑作者全套自测);③ 模板结构核对(工作表名/表头/列数/末列名/行数);④ 公式版式核对(分式/上下标/根号,用 PDF 布局几何);⑤ 论文口径 ↔ 结果表对照。
- 升级条件:只有快检发现分歧,或作者自测明显覆盖不到的地方(场值网格收敛、极端参数、边界处理),才升级到独立实现、更细网格或长时间复算。不要为了"显得认真"全量重跑。
- 独立探针模板:用
scripts/probe_template.py起手,把"独立复算"压到分钟级;探针做了简化(固定温度、定边界等)必须写明这是下界/上界口径并说明理由。 - 差异定位:与作者结果不一致时,先打印同一时刻的剖面(C(r)/T(r))找第一处分歧时刻,再定位到代码行;避免盲目加密网格。
- 耗时留痕:报告里写清"我实际跑了什么、各花多久";总检测时长目标 ≤30 分钟,超预算先报告并给取舍。
- 性能也算质量问题:若单轮运行 >5 分钟或存在明显低效(手写追赶法、逐格写 xlsx、无缓存全量重跑),列为 P2 并在改进建议里给可执行优化(
solve_banded/xlsxwriter/并行/增量重跑)。 - 三轨输出:
- 对话:一段自然简短点评——总体结论、参考分、最该改的 3–5 处。
- 检测报告:默认按
references/报告写作风格_自然专业.md第九节的 6 节骨架输出,内部检查(资格红线、六域、红牌、证据等级)收进附录覆盖表;命名<名称>_代码检测报告.md,用户指定路径时从用户。 - 改进建议报告:检测出 P0 或 P1 时,另出
<名称>_改进建议报告.md,按references/改进建议报告规范.md的 7 节结构与每条的 8 个字段写(位置/现象与证据/标签/最小改法/验收方法/工作量/预期收益/参考依据),只给分步骤、不贴可分发的代码块;没有 P0/P1 时不生成,只在检测报告里注明“无 P0/P1,未生成改进建议报告”。 - 输出目录:在“用户指定路径 >
$CODE_EVAL_OUT_DIR环境变量 > 当前任务工作目录”选定的基础路径下新建代码评价文件夹(已存在则复用),两份报告都放入该文件夹;同名文件已存在时追加-2、-3后缀,不覆盖旧报告;绝不写进数据集/。
输出语言规范
- 报告要像一位资深工程师写给参赛队的意见:结论先行、散文为骨架、证据贴着判断,不把检查表原样倒出来。完整规范见
references/报告写作风格_自然专业.md(必读)。 - 正文默认 6 节:结论 / 材料与运行 / 论文与代码对不对得上 / 主要问题 / 数值核对 / 评分;资格红线、六域、R 编号、E0–E4 等内部检查压缩成附录的一张覆盖表。
- 不写“首先、其次、综上所述、值得注意的是、整体完成度较高、仍有提升空间”这类套话;不用 emoji、满屏加粗和机械四段式。
- 每条判断给到 文件:行/函数、论文页/公式或运行输出,并写清“影响什么、怎么改”。
- 明确区分“我验证过 / 我只看了代码 / 我没拿到材料”;没跑就写“未运行”,不虚构结果。
边界与规则
- 只评代码;论文内容用于一致性核验,不给论文单独打分。需要论文评分时提示另用
数学模型评价。 - 不给奖项位次;报告必须带“非官方检测,仅供参考”免责。
- 评分细则先冻结;结论必带证据;OCR 不脑补。
- 默认不写入
数据集/;本工作区做标定时的产物写训练语料/,对外使用时该目录不存在则跳过,不创建。
references 索引
references/rubric_代码评价.md:8 点检测链、六域二十六项总表、资格红线、红牌清单 R1–R26、A/B/C 评分与低 AI 味输出规范(必读)。references/评审维度与报告结构_全面版.md:六域二十六检查项、资格级红线、六域画像与证据等级(内部查漏框架,必读)。references/报告写作风格_自然专业.md:自然专业写作规则、反例对照、6 节报告骨架(输出语言主规范,必读)。references/改进建议报告规范.md:改进建议报告的生成条件、7 节结构、每条 8 个字段与写作约束(必读)。references/修复模式库.md:R1–R26 与资格红线对应的标准修复步骤、验收方法与常见坑(写改进报告时按需查)。references/official/2026_论文格式规范_附录与支撑材料要求.md:官方附录/支撑材料/程序条款原文(资格红线依据)。references/problem_texts/:CUMCM 2021–2025 ×A/B/C 赛题文本(识别到年份题号时读对应文件)。references/official/:已收录的官方评阅要点(2022 ABC、2023 C)。references/examples/:三份自然风格示例——检测报告报告示例_2024C-Elysia415.md、报告示例_2019C-Amoiensis.md,以及改进建议报告报告示例_2024A-cny123222_改进建议.md(需要时读)。