# Cumcm Code Reviewer

> 数学建模参赛代码评价（CUMCM/研赛/美赛/校赛/自定义均可）：用户提供“赛题＋参赛论文＋代码”三项材料后，技能拆题并抽取论文声明的模型/参数/结果口径，逐问核验代码是否兑现，能跑就真跑，输出参考分、逐问分析、可复现结论与具体到文件和公式的问题清单。用于代码自查、参赛材料整体把关、获奖代码审评；只评代码，不单独评论文质量，不给奖项位次。报告按“资格红线＋8 点检测链＋六域二十六项”组织，覆盖正确性、数值稳定性、数据链路、可复现性、工程质量、验证测试与交付合规。

- Skill: `star1342354/cumcm-code-reviewer` (Agent Skill, multi-file: 71 files)
- Install (CLI): `npx skillmds@latest add star1342354/cumcm-code-reviewer`
- Raw SKILL.md: https://api.skillmd.com/api/skills/star1342354/cumcm-code-reviewer/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: star1342354 (https://skillmd.com/u/star1342354)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/star1342354/cumcm-code-reviewer

---


# 数学建模代码编写评价 Skill

> 定位：这是一套“赛题＋论文＋代码”对照评审技能。代码是评分主体，论文是核验依据——从论文里抽出“这一问声称用了什么模型、什么参数、应该给出什么数值/文件”，再到代码里逐项找证据。
> 依据：`references/rubric_代码评价.md`（8 点链、六域二十六项、评分、低 AI 味规范）＋ `references/评审维度与报告结构_全面版.md`（资格红线与 12 节报告结构）＋ `references/official/`（含 2026 格式规范的程序/支撑材料条款）＋ 用户赛题、论文、代码。
> 边界：官方不直接评代码；输出是**非官方、工程化参考**，不给奖项位次，不把论文当论文评分对象。

## 何时使用
用户给出一道数学建模题的**赛题**、**参赛论文**和**代码**，并要求“评代码 / 查代码和论文是否一致 / 自查参赛材料 / 给代码打分”。只给论文要评论文时，应转论文评价技能。

## 输入要求（三项必给）
1. **赛题**：原文粘贴、PDF/文本路径，或只给年份＋题号（A/B/C）。后者仅当命中技能内置 `references/problem_texts/` 时可用，否则必须提供原文。
2. **论文**：参赛论文全文（PDF/MD/txt/Word）。扫描件走技能自带 `scripts/ocr_pdf.py`；公式和图表识别不保真时按语义级评审并标注。
3. **代码**：`.py/.m/.ipynb`、整个目录或压缩包；多文件时说明入口与运行方式，尽量附带依赖清单和所需数据。

三项缺一即停：在报告/对话中列出缺哪一项、怎么补，补齐后再出正式评价。用户主动要求“先给初步意见”的除外（仍须在结果中标注“材料不全，仅初步”）。

## 评审流程（严格按序）
1. **清点材料**：确认赛题、论文、代码齐全；缺料按上节处理。
2. **拆题冻结**：把赛题按问切分，每问列出“要建什么模型、给什么数值/方案/文件、有什么红线”。命中 `references/problem_texts/` 时叠加赛题文本与官方要点；不命中就按用户赛题原文。检查点列全后**冻结**，中途不增删、不放宽收紧。
3. **抽论文口径**：逐问从论文找“声称的模型、关键公式/参数、题给参数的使用、应输出的结果与附件命名”；记录证据位置（页/节/公式编号/表格）。论文没有的内容不得脑补。
4. **建映射**：赛题小问 ↔ 论文声称 ↔ 代码载体（文件/函数/类/脚本），明确哪问缺代码或只有 README 注释。
5. **读码与运行**：先看目录结构、入口和数据流；能跑就实际运行并记录输出；依赖缺失/附件缺失/MATLAB 无环境等跑不了时，静态审并给复现步骤。扫描论文/附录提取走技能自带 `scripts/ocr_pdf.py`、`scripts/extract_code.py`（OCR 需要本机有可用 Python 与 pymupdf/rapidocr，缺失时请用户提供 OCR Python 路径）；提取的代码一律按“语义级评审”，标 `[OCR-LOW]`，不臆断字符级错误。
6. **8 点链核验**：沿 rubric 链 1–8 逐层给 结论＋证据＋一句话说明；再出环节画像与错误传播。
7. **资格红线与六域补全**：先判 Q1–Q3（附录/支撑材料是否含完整可运行源程序；能否在干净环境运行；结果是否与论文一致），再按六域二十六项补全正确性、数值稳定性、数据链路、可复现性、工程质量、验证测试等横向维度。这两步用于查漏：正文只写影响结论的部分，完整覆盖情况放附录。
8. **汇总问题**：先扫 rubric 红牌清单（R1–R26），再按 P0/P1/P2 汇总；每条写位置、问题、依据、改法。资格红线问题使用 Q 编号并置顶。汇总结果同时是检测报告和《改进建议报告》的输入，两份报告编号保持一致。
9. **评分**：按 rubric 的 A/B/C 子项合成参考分，并给六域 0–5 画像；不给位次。

## 效率规程（控制检测成本，先快后深）

1. **快检优先（目标 ≤10 分钟）**：① 干净副本跑通并记录**首次失败原因**（缺目录/缺依赖都算发现）；② **独立探针**复算 ≥3 个关键量（自己写 30–60 行脚本，不重跑作者全套自测）；③ 模板结构核对（工作表名/表头/列数/末列名/行数）；④ **公式版式核对**（分式/上下标/根号，用 PDF 布局几何）；⑤ 论文口径 ↔ 结果表对照。
2. **升级条件**：只有快检发现分歧，或作者自测明显覆盖不到的地方（场值网格收敛、极端参数、边界处理），才升级到独立实现、更细网格或长时间复算。**不要为了"显得认真"全量重跑**。
3. **独立探针模板**：用 `scripts/probe_template.py` 起手，把"独立复算"压到分钟级；探针做了简化（固定温度、定边界等）必须写明这是**下界/上界口径**并说明理由。
4. **差异定位**：与作者结果不一致时，先打印**同一时刻的剖面**（C(r)/T(r)）找第一处分歧时刻，再定位到代码行；避免盲目加密网格。
5. **耗时留痕**：报告里写清"我实际跑了什么、各花多久"；总检测时长目标 ≤30 分钟，超预算先报告并给取舍。
6. **性能也算质量问题**：若单轮运行 >5 分钟或存在明显低效（手写追赶法、逐格写 xlsx、无缓存全量重跑），列为 P2 并在改进建议里给可执行优化（`solve_banded`／`xlsxwriter`／并行／增量重跑）。
10. **三轨输出**：
   - 对话：一段自然简短点评——总体结论、参考分、最该改的 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`（需要时读）。

