---
name: cumcm-step-review
description: "数学建模国赛（CUMCM/全国大学生数学建模竞赛）分步审核工作流。当用户要求做数学建模国赛题目、完整建模、建模分析、代码求解、结果可视化、生成数学建模论文、写 AI 工具使用声明/AI 使用报告时使用，且需要分步推进、先审核思路与算法再写代码、每个部分写入论文草稿供审核。按'问题重述→数据预处理→逐问建模与求解→模型分析与检验→模型评价与推广→参考文献→附录→问题分析→模型假设→符号说明→摘要'逐步完成：每部分先给出分析与候选方案，用户审核通过后编写代码，并把该部分写入 Word 论文草稿再次供用户审核；全部定稿后按国赛 AI 使用规范生成 AI 工具使用声明与 `AI工具使用详情.pdf`；保留建模约束、工具链、算法库与最终验收。"
---

# 数学建模国赛-逐步审核版

## 定位

本 Skill 面向全国大学生数学建模竞赛（CUMCM）的完整建模论文分步审核工作流。它不一次性产出全文，而是按论文章节推进：每部分先给出分析与候选方案，用户审核通过后再写代码，并把该部分写入 Word 论文草稿再次供用户审核，全部冻结后生成最终论文。生成的论文供用户参考，论文结构与格式必须以目标赛题当届官方规则和官方模板为准，不能用往届经验替代官方要求。

## 根目录契约

- `SKILL_ROOT`：本文件所在目录，只读。脚本、参考、算法资料和模板都从这里读取。
- `PROJECT_ROOT`：用户题目和项目所在目录，所有新产物只能写入这里。
- 两个根目录必须不同；默认禁止覆盖 `SKILL_ROOT` 内任何文件。
- 输入附件只读。确需修改模板时，先复制到 `PROJECT_ROOT` 再处理。

## 强制执行协议

1. 首次进度更新回显：已激活本 Skill、`SKILL_ROOT`、`PROJECT_ROOT`、当前论文部分、目标赛题与届次、计划读取的入口。未确认的官方规则明确标为待核验。
2. 开始每个论文部分前，实际读取 `references/阶段流程.md` 中对应部分；**把该部分写入论文草稿前，必须实际读取 `references/优秀论文写法指南.md` 的对应章节，需要实证句模/章节频率时再读取 `references/优秀论文语料分析报告.md` 对应小节**，按国赛优秀论文的篇幅、结构、句式与证据组织方式写正文；**写、改或评摘要时，必须先实际读取 `references/摘要写作/摘要写作方法论.md`（93 篇国赛优秀摘要语料提炼的方法论），并按其"起草 → 二次验证 → 定稿"两阶段闭环执行**；绘制技术路线图/求解流程图等非数据图时，先读取 `references/绘图参考/drawio_flowchart.md` 与 `tools/drawio/SKILL.md`（流程图工具已内置），命中论文级模板（roadmap-5band/framework-3col/stageflow-3col/taskflow-land）时再读取 `references/绘图参考/scibox_templates.md` 与 `tools/drawio/scibox-diagram/SKILL.md`（sci-box 流程图模板已内置）；使用 PDF、Excel、论文搜索、DOCX 或 LaTeX 时，再实际读取 `tools/*/SKILL.md`（工具已内置，见 `tools/README.md` 与渐进式加载表）；**生成或核对 AI 工具使用声明/AI 使用报告时，必须先实际读取 `references/AI使用报告/README.md`，并按 `references/AI使用报告/规范与红线.md` 与 `references/AI使用报告/报告结构模板.md` 执行，最终运行 `references/AI使用报告/scripts/ai_report_audit.py`。** 知道文件路径不等于已经执行。
3. 严格调用本 Skill 内置的脚本和模板。已有初始化、转换、编译或校验工具时，禁止为了省时手写替代实现。
4. 把任何校验警告视为未完成。只有当届官方规则或用户明确要求允许偏离时，才能记录"规则来源、偏离项、理由"后继续；不得自行降低篇幅、图表、公式、引用或编译质量目标。
5. 环境缺少引擎、搜索源、渲染器或依赖时，报告阻塞并继续完成仍可验证的部分；禁止静默换工具、跳过验证或用较差产物冒充完成。
6. 每个论文部分写入 `论文草稿.docx` 后，先提交用户审核；用户确认通过后才冻结该部分并进入下一部分。用户要求修改时，修改后重新提交审核。**任何含公式的部分，提交审核前必须完成公式格式检查与修复（公式居中、编号右对齐且连续、正文 `（n）` 引用、无占位符残留），并按 `references/阶段流程.md`"公式检查（所有部分通用）"与 `references/质检清单.md` 四·一执行门禁；用户审核时一并核对公式格式，未通过不得冻结。**
7. 关键节点按 `references/质检清单.md` 完成作者自检；独立 Subagent 质检门禁默认关闭，用户明确启用时按该文件中"独立质检"章节执行。
8. 交付前运行当前部分规定的全部完成门禁。任一命令未运行、退出码非零、独立验收未通过、仍有未处理问题或产物在门禁后发生变化时，不得声称"已完成"。
9. 最终回复列出实际读取的入口、实际运行的关键命令、退出码、用户审核状态、核心质量指标和仍存在的阻塞；不得只说"已检查"。
10. **AI 使用留痕与报告（贯穿 + 提交前必做）**：每个论文部分冻结时，同步把该环节的 AI 使用记录（环节、时间、工具、提示词摘要、处置、核验、对应文件）追加进 `PROJECT_ROOT/ai_usage_log.md`（格式见 `references/AI使用报告/报告结构模板.md` 第 1 节）；最终论文生成后、正式提交前按第 12 部分生成 AI 工具使用声明与 `AI使用报告.docx`/`AI工具使用详情.pdf`，核心建模与问题分析表述为参赛队主导并逐项人工审查核验；不得虚构使用记录，也不得用"未使用 AI"掩盖实际使用。

## 论文草稿（审核载体）

- 在 `PROJECT_ROOT` 维护 `论文草稿.docx`：必须是 Word 文档，直接可读、可批注，供用户审核；不生成 Markdown 版本作为审核载体。
- 每个论文部分完成后，使用 DOCX 工具把该部分追加或重建进 `论文草稿.docx`，再提交用户审核。
- 内部临时分析文件不作为审核交付物。
- 全部部分审核定稿后，由同一冻结正文生成最终 `完整论文.docx` 和 `完整论文.pdf`（LaTeX 编译；用户明确只要一种格式时按用户要求）。

## 分步审核流程

按以下顺序推进。每部分统一执行"分析 →（如需要）方案审核 → 代码实现 → 写入论文草稿.docx → 用户审核 → 冻结"，详细要求见 `references/阶段流程.md`：

1. 问题重述部分（问题背景、问题提出）
2. 数据预处理部分
3. 每个问题的建模与求解部分（q1→qN；内含问题分析、候选算法、代码与结果、图表）
4. 模型的分析与检验部分
5. 模型的评价与推广部分
6. 参考文献部分
7. 附录部分
8. 问题分析部分（整体思路；问题确定后写）
9. 模型假设部分（问题确定后写）
10. 符号说明部分（问题确定后写）
11. 摘要部分（全部部分审核定稿后写；走"起草 → 二次验证 → 定稿"两阶段闭环，见 `references/摘要写作/摘要写作方法论.md`）
12. AI 工具使用声明（复检定稿，初版随参考文献写入）与 AI 使用报告（**提交前必做**；最终论文与摘要定稿后执行，见 `references/AI使用报告/README.md`；仅当届官方未作要求，或本队全程未用 AI 并按官方"未使用"文案声明时，可跳过）
13. 终稿去 AI 味 / AIGC 降重版（**可选**，仅用户明确要求时执行、默认不执行；不替代冻结原稿，见 `references/降重模块/README.md`）

8、9、10 在**写作与审核顺序**上放最后（问题确定后写），摘要（11）在全部部分冻结后撰写；最终成稿排版时，摘要独立成首页，问题分析紧跟问题重述，模型假设与符号说明放在建模正文之前；12（AI 使用报告）在最终论文与摘要定稿后、正式提交前执行。

## 路由

| 用户意图 | 执行方式 |
| --- | --- |
| 完整建模 | 按上述 1–11 顺序分步推进，全部审核定稿后生成最终论文；使用过 AI 工具时继续执行 12（AI 使用报告）后再提交 |
| 只做单一或部分章节 | 只执行对应部分及其门禁，不强制全流程 |
| 只写代码、跑结果 | 需要题目和可执行的模型说明；缺失时先补齐必要分析 |
| 只生成或修改论文 | 需要已审核的草稿与真实运行结果；缺失时回退到对应部分 |
| 生成 AI 工具使用声明 / AI 使用报告 | 需要已冻结的完整论文与 `ai_usage_log.md`；按 `references/AI使用报告/README.md` 执行，产出 `AI使用报告.docx` 与 `AI工具使用详情.pdf` |
| 终稿去 AI 味 / AIGC 降重（可选） | 需要已审核定稿的完整论文；按 `references/降重模块/README.md` 执行，产出独立的“去 AI 味版”并保留冻结原稿 |

## 固定交付物

1. `PROJECT_ROOT/论文草稿.docx`：分步追加、供用户审核的 Word 文档。
2. `PROJECT_ROOT/完整论文.docx`：全部部分审核定稿后生成。
3. `PROJECT_ROOT/完整论文.pdf` 与 `完整论文-LaTeX/`：由同一冻结正文生成并真实编译。
4. 可运行代码（`.py` / `.m`）、结果表格、三分类候选图（`raw_qN_*`、`process_qN_*`、`result_qN_*` 每类至少 3 张且覆盖全部子问题）、`results/复现清单.json`。
5. 内部工作文件（题目分析、术语表）保留用于支撑论文章节，不作为审核载体。
6. `PROJECT_ROOT/ai_usage_log.md`：贯穿执行过程的 AI 使用留痕（提交前必须存在，供 AI 使用报告引用）。
7. `PROJECT_ROOT/AI使用报告.docx` 与 `PROJECT_ROOT/AI工具使用详情.pdf`：使用过 AI 工具时生成；PDF 供支撑材料打包，论文附录支撑材料文件列表须列出。

## 质量门禁

- **作者自检**：每部分冻结前按 `references/质检清单.md` 完成自检。
- **用户审核**：硬性门禁。用户审核未通过的章节不得冻结；用户审核与独立质检相互独立，两者都通过才算冻结。
- **最终验收**：全部冻结后运行 `scripts/paper_check.py`，并按 `references/质检清单.md` 完成编译与 PDF 视觉检查；硬错误未修不得交付。

## 建模约束

1. 先完整理解题目、附件、目标、约束和评价口径，再形成结论与模型方案。
2. 每道子问题最多使用两个独立模型体系；同一物理机制在不同近似阶段、边界条件或精度下的展开计为一个模型族；只有控制机理、状态变量或求解目标实质不同才另计模型。辅助的灵敏度分析、误差检验和可视化不计作独立模型。
3. 避免直接套用过于常见的简单模型来冒充创新；创新必须来自问题结构、数据处理、约束设计、算法改进或验证方式，并说明依据。
4. 数据判定标准按题目、官方规则、领域文献或数据分析结果确定。
5. 不因两个模型得到相近结论就强制删除其中一个；是否保留由研究目的和证据价值决定。

## 图表规范（用户定制，硬性）

- 图内不允许出现任何标题（图上方、图下方均不写），也不画面板编号，只保留数据；标题信息一律放图注/图表契约。
- 图题（caption）放在图下方，不放图上方；正文"先引导 → 插图 → 紧随其后的分析"，连续两张以上图表之间没有文字判为硬错误。
- 图幅与字号比例自检：图中文字按最终印刷尺寸设定（正文标签 8.5–11pt，最小 ≥7.5pt），禁止 10pt 默认字号整图缩放，避免图大字小。
- 图型多样性：同一类型图（折线/柱状/散点/热力图/箱线等）全篇不宜超过 3 张，同类图不连续出现 3 张以上，避免审美疲劳；同一子问题多张图尽量混排不同图型，最终论文按证据权重选图。
- 配色：`JOURNAL_PALETTES = {nature, science, cell, ieee, general, okabe-ito, wong}`，各套含主色板与变体，`apply_publication_style(journal=..., variant=...)` 自动切换；默认 nature（用户定制主色板），需严格色盲友好时用 `journal="okabe-ito"`（冗余编码 + 灰度预览）。
- 布局：禁止默认 2×2，按面板数量和证据权重选择 1×2、2×1、3×1、2×3、主图+辅助等；图宽以期刊栏宽为基准（国赛按正文栏宽，控制在版心内）。
- 导出：`export_figure()` 默认只保存一个 300 DPI PNG；`svg=True`、`grayscale_preview=True`、`extra_formats` 按需追加；`figure_audit.py` 不强制 SVG/PNG 配对，SVG 存在时文本检查降级为提示；MATLAB 导出默认 PNG。
- 公式：独占一行居中、编号 `(1)(2)…` 右对齐且连续；正文用 `（n）` 引用，公式出现后解释符号。**每问审核必检"公式格式 + 模型求解过程"（四步骨架：算法依据→总述→Step 步骤→工具参数与结果衔接），未通过不得进入下一问**（见 `references/阶段流程.md` 第 3 部分与 `references/质检清单.md` 四·一）。
- 非数据图（技术路线图、子问题求解流程图、数据处理流程图、模型结构图）：统一用内置 `tools/drawio/` 按 `references/绘图参考/drawio_flowchart.md` 生成；技术路线图、研究内容全景图、分阶段流程图、任务流水线图**优先用内置 `tools/drawio/scibox-diagram/` 四套论文级模板**（见 `references/绘图参考/scibox_templates.md`），不命中模板才手写 XML。规则同上（图内无标题、图题在图下、图后跟分析、同类型 ≤3、配色/字号/布局一致），导出 PDF 或 300 DPI PNG；`.drawio` 源文件与 content JSON 保留在 `PROJECT_ROOT/figures/`。

## 渐进式加载

先读本文件，再按当前部分读取 `references/阶段流程.md` 对应章节；使用工具前读取对应工具的 `SKILL.md`；禁止一次性加载全部资料。

| 当前任务 | 额外读取 |
| --- | --- |
| 开始或推进任一部分 | `references/README.md` → `references/阶段流程.md` |
| 把某部分写入论文草稿（每个部分） | `references/优秀论文写法指南.md` 对应章节 →（需要实证句模时）`references/优秀论文语料分析报告.md` 对应小节 → `references/写作与图表规范.md` → `references/roles/论文手/章节模板.md` |
| 写、改或评摘要（摘要部分/评审既有摘要） | `references/摘要写作/摘要写作方法论.md` →（按需）`references/摘要写作/analysis.md`（评审视角）→ `references/摘要写作/templates.md`（句式）→ `references/摘要写作/mistakes.md`（误区）→ `references/摘要写作/checklist.md`（自检）→ `references/摘要写作/example.md`（改写案例）→ `references/摘要写作/摘要汇总.md`（93 篇语料对照） |
| 选择模型或查算法 | `references/模型选型树.md` / `references/算法索引.md`，再读取一个或少数几个 `assets/*.md` |
| 绘图与配色 | `references/绘图参考/chart_knowledge_base.md`（100+ 图表速查/图级/避坑）→ `references/绘图参考/chart_selection.md`（论证意图）→ `scripts/plot_style.py`、`assets/期刊配色方案.md`、`references/写作与图表规范.md` |
| 绘制技术路线图/流程图等非数据图 | `references/绘图参考/drawio_flowchart.md`（国赛规则与落位）→ 命中模板时 `references/绘图参考/scibox_templates.md`（四套模板选择）→ `tools/drawio/scibox-diagram/SKILL.md` + 对应 `references/<template>.md`（模板渲染）→ `tools/drawio/SKILL.md`（完整工作流）→ 按图类型 `tools/drawio/references/diagram-types.md` → 手写 XML 前 `tools/drawio/references/xml-authoring.md` |
| 热力图进阶 / 相关分析进阶图（用户提到"热力图进阶"时优先） | `references/绘图参考/heatmap_advanced.md`（Mantel 连线图 + 皮尔逊整合矩阵，优先）→ `references/绘图参考/chart_knowledge_base.md`（热力图/矩阵散点图）→ `references/绘图参考/plot_recipes.md` §8 |
| 图表自检 | `scripts/figure_audit.py`、`references/绘图参考/visual_review.md` |
| 科研绘图模板 | `assets/figure-templates/README.md` |
| 搜索论文 | `tools/paper_search/SKILL.md` |
| 读取题目 PDF | `tools/pdf/SKILL.md` |
| 处理 Excel | `tools/xlsx/SKILL.md` |
| 写入或生成 Word 草稿/论文 | `tools/docx/SKILL.md` |
| 生成 LaTeX 论文 | `tools/latex/SKILL.md` |
| 迁移到其他工具/机器（复制包后效果变差时） | `scripts/check_env.py`（环境诊断）→ `迁移与依赖说明.md`（外部依赖与工具差异）→ `requirements.txt`（安装清单） |
| 写 AI 使用声明 / 生成 AI 使用报告（提交前） | `references/AI使用报告/README.md`（触发与流程）→ `references/AI使用报告/规范与红线.md`（口径与红线）→ `references/AI使用报告/报告结构模板.md`（结构与留痕）→ `references/AI使用报告/一致性自检清单.md` → `tools/docx/SKILL.md`；门禁 `references/AI使用报告/scripts/ai_report_audit.py` |
| 终稿去 AI 味 / AIGC 降重（可选） | `references/降重模块/README.md`（触发与协议）→ `references/降重模块/红线与自检.md` →（已安装时）aigc-reduce 方法论；完成后复跑全文门禁 |
| 最终验收 | `scripts/paper_check.py`、`references/质检清单.md` |

## 完成判定

- 先满足"强制执行协议"，并提供可复核的门禁结果与用户审核记录。
- 所有论文部分均已写入 `论文草稿.docx` 并经用户审核确认；最终论文由同一冻结正文生成。
- 摘要按 `references/摘要写作/摘要写作方法论.md` 两阶段闭环撰写并经用户审核：逐题段与子问题一一对应、每问有量化结果、无公式与表格、关键词 4–6 个且与正文一致、摘要内每个数值与正文结果一致。
- 所有计算结论来自实际运行结果；公式、表格和图表与代码结果一致；引用可溯源。
- 论文已按目标赛题当届官方规则配置（摘要独立一页、含标题与关键词，电子版首页为摘要页，正文不要目录且不超过 30 页，附录含支撑材料文件列表与完整可运行源程序），篇幅目标已确认，公式/非空图表数量与全部子问题图表覆盖经过检查，图表编号与正文引用连续，参考文献与正文引用双向对应。
- Word 分支通过原生 OMML、DOCX 结构、转换告警门禁和渲染页数检查；LaTeX 分支通过环境诊断、真实编译、日志、权威资源—源码—PDF 哈希绑定、页数、空白页、页面尺寸、字体嵌入和图片 DPI 检查。
- 使用过 AI 工具时：论文参考文献前已有官方固定文案声明；`ai_usage_log.md` 完整覆盖各冻结环节；`AI使用报告.docx` 与 `AI工具使用详情.pdf` 已生成并经用户审核；`ai_report_audit.py` 退出码为 0；报告、声明、附录与支撑材料四者一致，核心建模与问题分析表述为参赛队主导并逐项人工审查核验。
- （可选）用户要求去 AI 味/AIGC 降重时：已产出独立“去 AI 味版”与差异审计，冻结原稿未改动，全部门禁复跑通过并经用户审核。
- 所有产物位于 `PROJECT_ROOT`；`SKILL_ROOT` 未被改写。
