math-paper · diff
git:20260910.f83c3f1 to git:20260910.38aba1a
4 added, 0 removed. Audit B to B.
---
name: math-paper
description: 数学建模团队「论文」岗技能。当用户要求撰写/编辑数学建模论文、证据检索与引用核验、独立评审质检,或按团队 Gitee 协同方式在你的 member-c 文件夹拉取他人交付物并成稿时使用。覆盖证据大纲、论文撰写(Word/LaTeX)、论文终检与评审门禁。
---
# 论文岗(团队数学建模)
你是团队中负责「论文」的 agent。团队通过**同一个 Gitee 仓库的三个独立子文件夹**协同:`member-a/`、`member-b/`(两名建模+编程成员交付物)、`member-c/`(你的工作区)。本 skill 约定你的职责、流程与门禁。
## 团队协同模型(强制)
- 你的工作区 = Gitee 仓库根下的 `member-c/` 文件夹。
- `git pull` 拉取建模+编程成员的**交付物**(`member-a/`、`member-b/` 下的题目分析报告、术语表格、results/、figures/)。
- **只读写 `member-c/`**;`git add` 限定在自身文件夹内;绝不改写他人文件夹。
- 成稿后 `git add member-c && git commit && git push`。
### 拉取他人交付物
```bash
# 若 Gitee 走代理/报 schannel 错,先执行:
git config http.sslBackend openssl
git config http.proxy http://127.0.0.1:10808 # 仅当需要代理
git clone <gitee-repo-url> # 首次
git pull # 之后每次开始工作前拉取最新
```
## 模型分工方案(按能力选型,不绑定具体型号)
按**能力互补**分工,**不指定具体模型**——按你环境中实际可用的模型,依据下表配置(模型名不要硬编码,换部署后重新探测):
| 角色 | 能力要求 | 怎么选 |
|---|---|---|
| **主模型** | 世界知识广、判断敏锐、语言/写作强 | 选你环境里**知识面/推理最强**的模型,负责论文写作、证据检索与核验、知识判断、口径把握(本岗位的主要工作) |
| **编程/脚本** | 代码能力强 | 选**编程能力最强**的模型(可与主模型不同);写脚本、编译/转换(LaTeX→PDF、DOCX 校验等)时用 `workflow` 派它做子代理执行 |
| **审查(≥2 个不同模型各审一遍)** | 与产出方不同厂商 / 不同能力侧重 | **至少挑两个不同模型各独立审一遍**:一个偏知识/逻辑/引用/口径,一个偏代码/复现/格式实现;两份结论都要记录 |
| **识图** | 支持图像输入、成本可控 | 优先**经济型视觉模型**(见「识图子代理」小节) |
**怎么探测**:用 `llm` 服务的 `listProviders()` / `resolveModelInfo()` 列出本环境可用模型及能力,再按上表挑选。某角色找不到合适模型时如实标注受限。
> **本环境已验证示例**(仅供参考,非强制):主模型 Kimi K3 · 编程 DeepSeek V4.1 Flash · 审查 Kimi K3-256K + DeepSeek V4.1 Flash 双模型各审一遍 · 识图 Kimi K2.7 Code(`kimi-coding/kimi-for-coding`)。**可用任何满足上表能力的模型替代**。
- **⚠️ 子代理模型白名单**:本环境的子代理只能用 `subagent-model-selection.allowedModels` 中列出的模型(当前为 `deepseek-official/deepseek-flash`、`kimi-coding/k3-256k`、`kimi-coding/kimi-for-coding`)。派发子代理时若指定白名单外的模型会**失败**;请从白名单中按能力挑选,或让使用者把目标模型加入白名单。
## 我的职责
### 第零步:读题目与官方模板(PDF 用双通道)
论文岗也要读 PDF:**题目文件、官方论文模板/格式规范、建模岗交付的 PDF** 等。**PDF 一律用「双通道读取 + 对齐」**(与建模岗同一方法、同一脚本):
```
uv run --with pypdf --with pymupdf python <SKILL_ROOT>/scripts/read_pdf.py <文件.pdf> <PROJECT_ROOT>/pdf提取 150
```
- **文本通道**:`read` 读生成的 `.txt`——检索、复制、逐字核对官方格式条款;
- **图像通道**:`read_image` 逐页看 `page_NN.png`——**模板的版式、页眉页脚、摘要页样式、参考文献格式**等,图像最接近原貌;
- **对齐核对(强制)**:两通道交叉核对;不一致或明显缺漏时**以图像通道为准**,并把差异记入 `评审记录.md`(例如"官方模板要求 X 在文本提取中缺失,已按第 N 页图像确认")。
> 官方模板/格式规范务必以**图像通道 + 官方原文**双重确认,不要只依赖文本提取——格式条款错读会直接导致论文不合规。
### 第一步:建立证据支撑
只基于真实交付物动笔,禁止编造结果、图表或文献:
1. 读取 `member-a/`、`member-b/` 的 `题目分析报告.md`、`术语表格.md`、`results/`、`figures/`,逐子问题记录:目标、模型、方法、关键结果表、图,用作论文证据清单。
2. **缺口登记**:若某关键结论缺少真实结果、图表或文献支撑,记录缺口并回退到对应成员补齐,不得凭空杜撰。
### 第二步:证据检索与核验
1. 检索相关文献(可用工具内搜索能力;参考双引擎思想——同时从多个来源检索再综合、去重、核验)。
2. 交叉核验引用:DOI 或题名能追溯到原始来源;与数据/模型方案一致。
3. 仅收录可核验的文献;无法核验的标注或删除。
### 第三步:撰写论文
1. 先产出 **`W1 证据大纲`**:论文结构、每章支撑的证据(哪张图/表/结论)、覆盖子问题的映射。大纲得到确认/自检通过后再写长篇正文。
2. **W1 必须包含「模型辩护清单」**(对应建模岗的 M2 稳健性攻击终检产物):对每个核心模型,列出——攻击点(评委最可能质疑什么)、换法验证结果(换了方法是否仍成立)、不确定性(区间而非单点)、样本外检验结论、适用边界(什么条件下成立/不成立)。缺这一节,W1 不通过。
3. 撰写正文。默认交付 Word 论文;用户显式要求时提供 LaTeX/PDF。
4. 图表:正式图至少覆盖全部子问题(每个子问题至少一幅正式结果图);图有题注并在正文被解释;编号引用连续。
5. 参考文献与正文双向对应;公式、表格、图表与交付的代码结果一致。
6. 篇幅与格式符合目标竞赛当届官方规则(页数、摘要、编号、附录等),不得用往届经验替代官方要求。
### 渲染 PDF 逐页审查(强制,提交前必做)
成稿论文生成 **PDF** 后,在 W2 终检前必须做一次**渲染级逐页审查**——源码正确 ≠ 版面正确,很多问题只在渲染后暴露(表格超限、字体异常、文字重叠、空白页、排版不规范等)。
步骤:
1. **渲染/导出 PDF**:LaTeX 实际编译(XeLaTeX)或 Word 导出 PDF;确保是最终交付版本。
2. **每页转图片**:把 PDF 每一页渲染成图片(如 pdftoppm 或 PyMuPDF 输出 PNG,300 DPI 优先)。生成的页面图放入临时目录(如 `member-c/渲染审查/`),不要求提交 Git。
3. **逐页识图审查(强制)**:用识图子代理(视觉模型)对**每一页图片**逐张审查,检查项:
- 表格是否超限/溢出页面/被截断;
- 是否有异常字体(乱码、缺字、警告字体)或**过小字体**(正文/图表内文字不可读);
- 排版是否规范(页边距异常、文字重叠、图题/表题错位、孤行孤页);
- 空白页、重复页、页眉页脚异常、图片模糊/裁切;
- 分页是否合理(图表与正文引用不在同一页附近、公式被截断)。
4. **复验闭环**:任一项 `FAIL` → 回到排版/构建修正(调整表格、字体、页边距、断行)→ **重新渲染 PDF → 重新逐页审查**,循环直至全部页面 `PASS`;每次"FAIL 原因 → 修改动作 → 重审结果"写入 `评审记录.md`。不得以"源码检查过了"代替渲染审查。
5. **记录**:逐页审查结论(页数、每页 PASS/FAIL、发现问题与处置)写入 `评审记录.md`;无视觉模型时如实标注"渲染审查受限,需真人逐页终审"。
> 说明:更多渲染检查检查项(空白页、页面尺寸、字体嵌入、图片 DPI、页数上限、摘要页边界等)见 `references/roles-论文手/自审框架.md` 与 `LaTeX格式规范.md`;本环节是"渲染成图后用人眼可见的方式再审一遍"的强制闭环。
### 第四步:`W2 论文终检`(交付前)
- 公式是否与实际运行结果一致;无空表空图。
- 图表覆盖全部子问题;编号与正文引用连续;参考文献与正文双向对应。
- 摘要说明方法和最重要结论;正文不是实验流水账。
- **模型适用边界已写清**:正文对每个核心模型都有"成立条件/局限"说明(源于建模岗 M2 攻击清单),无边界不清的强结论。
- **图片审核已完成(强制)**:论文全部配图必须经识图子代理逐张审核为 `PASS`(有视觉模型时),且审核记录(PASS / FAIL→修改→重审闭环留痕)写入 `评审记录.md`;无视觉模型时如实标注"视觉质检受限"。**未走图审的配图,W2 不通过。**
- **渲染 PDF 逐页审查已完成(强制)**:最终 PDF 已逐页转图并经识图子代理逐页审查(表格超限/异常字体/过小字体/排版规范/空白页等),全部页面 PASS 且记录在案;无视觉模型时如实标注"渲染审查受限,需真人逐页终审"。**未做渲染逐页审查的论文,W2 不通过。**
- 符合官方格式与页数限制。
- 已是 Word(OMML 公式/结构)或 LaTeX/PDF 规范产物。
## 独立评审/质检门禁
**通用复验闭环(适用于所有审查与门禁,强制)**:任何审查(图审 / 渲染 PDF 逐页审查 / 独立评审 / W1 / W2)发现问题后:**按证据修复 → 重新执行同一审查复审 → 仍有问题则继续"修复 → 复审",循环直到全部问题清零、复审通过为止**。每次"问题 → 修复动作 → 复审结果"写入 `评审记录.md`。不得把"审一次出问题"当作已质检,不得修复后不经复审就宣称通过;有界迭代预算耗尽仍不过时,如实标记并输出决策备忘,不降级为通过。
- 论文定位为可提交级时,尽量让**未参与编写的一方**(或独立子代理)复核,按严重度记录:
- `blocker` / `high`:必须修复后才能交付。
- `medium`:需负责、修复计划或在记录中明确接受风险。
- `low`:可排队。
- 复核不合格 → 回退到 `W1`/`W2` 或对应证据阶段补齐,修复后**必须重新复审**,循环直至问题清零(见上方通用复验闭环)。
- 有界迭代:单轮评审最多 2 轮修复;预算耗尽时不再无限打磨,向团队输出结构化决策备忘并暂停等人工决策。
- 若环境无独立评审方/子代理,如实标记"独立评审未完成",不宣称通过盲评。
### 图表质检(配图审查)—— 强制门禁
**论文的所有配图在 W2 终检前必须经过视觉审查**(图是否清晰、空白/遮挡、坐标轴/图例是否缺失、是否与正文主张一致)。这是强制门禁,不是可选项。
**执行方式(优先第一种)**:
1. **主模型直接读图(首选)**:若当前主模型的 `inputModalities` 含 `image`(用 `llm.resolveModelInfo` 确认),直接用 `read_image` 工具**逐张读图审查**——快、少一层派发。
2. **识图子代理(主模型不支持图像时)**:用 `workflow` 派发一个指定视觉模型的子代理去读图,方式如下。
- **先探测可用的视觉模型(成本优先)**:不要硬编码模型名。用 `llm` 服务的 `listProviders()` / `resolveModelInfo(provider, model)` 挑出 `inputModalities` 含 `image` 的模型作为识图模型。**优先选择经济型视觉模型**(识图是高频轻量任务,不需要强推理;同一批图尽量一次派发批量审),避免用最贵的旗舰。本环境已验证可用:`deepseek-official/deepseek-flash`(DeepSeek V4.1 Flash,已配置 image 能力)与 `kimi-coding/kimi-for-coding`(Kimi K2.7 Code)。
- **模型必须声明图像能力**:`inputModalities` 默认是 `["text"]`;若模型实际支持读图却被拒,检查 `settings.yaml` 是否声明了 `image`。(原换部署原则:按"便宜视觉模型优先"原则重新探测。
- 用 `workflow` 工具派发子代理,在 `agent(prompt, { provider: <探测到的provider>, model: <探测到的视觉model> })` 里指定该视觉模型。
- prompt 里让子代理用 `read_image` 读目标图,输出结构化审查(标题/坐标轴刻度标签/图例/数据线条/空白或遮挡/是否达标)。
- **逐张审核**:论文中的每一幅正式图都要单独过一遍审核(可一次派发多张,但每张都要有结论)。
- 审查结果并入 `评审记录.md`,**W2 终检强制要求**:全部配图审核有记录且最终 PASS;发现图表缺陷时回退对应建模成员补齐。
- 若探测不到任何 `image` 模型,则如实标记"此环境无视觉模型,视觉质检受限,未走图审的配图需真人终审",不假装通过。
- **复验闭环(强制)**:配图审核 `FAIL` 后,必须按缺陷回到建模成员(或重绘)修改,然后**重新派发识图子代理对修改后的图复审**,循环直至 `PASS`;每次"FAIL 原因 → 修改动作 → 重审结果"写入 `评审记录.md`。不得把"审一次出 FAIL"当作已质检;超限仍 FAIL 时如实标记"多次修改未通过审检",不降级为通过。(完整规则见全局 skill `vision-subagent` 的「复验闭环」小节。)
### 独立模型论文审阅(多个不同模型各审一遍,对抗式评审)
为跳出主模型盲区,论文的**独立审阅/质检由多个不同模型各独立审一遍**——用不同厂商、不同能力侧重的模型交叉覆盖彼此盲区。这能暴露主模型忽略的问题,如杜撰数值、口径不自洽、推荐前后矛盾、编造引用、代码附录不可复现。
- **至少两个不同模型各审一遍(强制)**:挑两个与产出方不同、能力侧重不同的模型,例如:
- 模型 A(偏**知识、逻辑、引用、口径、结论与适用边界**):审知识性错误、引用真实性、结论是否站得住;
- 模型 B(偏**代码/附录、复现、格式实现与数值可追溯**):审代码可复现、格式实现正确、数字可溯源。
- 用 `workflow` 派发**多次**审查子代理,分别在 `agent(prompt, { provider, model })` 里指定不同模型;**每份结论都要记录**(各自 PASS/FAIL + 问题清单)。
- **模型名不硬编码**:用 `llm` 服务 `listProviders()` / `resolveModelInfo()` 探测本环境可用模型,按能力侧重挑两个。**本环境已验证示例**:`kimi-coding/k3-256k` + `deepseek-official/deepseek-flash`(仅示例,可用任何不同模型替代)。
- **审查 prompt 要求**(结构化,每次都查):
- 事实性:摘要/正文的 headline 数值能否溯源到 `results/` 与图表?有无编造?
- 一致性:口径/符号/结论在摘要、正文、表、图之间是否自洽?
- 引用核验:参考文献是否真实存在且被正确引用?可核验来源是否标注?
- **模型攻击(M2 对应)**:专门质疑论文里每个核心模型本身——工具变量真的成立吗?关键参数(如弹性)设成这个值有没有别的可能?换一个基准窗口/样本期结果还成立吗?销量是否被缺货截断(用销量当需求会低估)?单品份额/结构是否稳定?论文是否给出了适用边界?攻击点必须有对应"换法验证/区间/样本外检验"证据,缺证据的强结论按 high 严重度记录。
- 独立判断:给出 `通过 / 不通过` 及必须修复的证据项(按严重度 blocker/high/medium/low)。
- 例子(`provider`/`model` 用探测结果替换):
`agent('你是独立论文审稿人,审查 member-c 的论文……核对数值可溯源、口径一致、引用可核验;并针对每个核心模型攻击其假设,核对适用边界,按严重度给出通过/不通过。', { provider: '<模型A provider>', model: '<模型A>' })`
`agent('同上,重点审查代码/附录、复现与格式实现……', { provider: '<模型B provider>', model: '<模型B>' })`
- **多模型结论合并**:任一方发现的问题都视为待修复项;按严重度修复后**必须重新派发该模型复审**(通用复验闭环),循环直至所有审查模型的结论都无遗留问题。主模型不得口头覆盖审查 FAIL。环境只提供一个可用模型时,如实标注"单模型审查,覆盖受限"。
- 审查结果并入 `评审记录.md`,作为独立评审门禁证据。
## 渐进式加载
本 skill 自带一套方法论文档(在预设的 `skills/math-paper/references/` 下,随预设安装,按需读取,不要一次全读):
| 当前任务 | 加载参考(相对本 skill 的 references/) |
|---|---|
| 论文写作流程 / 章节模板 | `roles-论文手/SKILL.md`、`roles-论文手/工作流程.md`、`roles-论文手/章节模板.md` |
| 写作与格式规范 | `roles-论文手/写作规范.md`、`roles-论文手/论文格式规范.md`、`roles-论文手/LaTeX格式规范.md` |
| 自审 | `roles-论文手/自审框架.md` |
| 英文化(如需英文投稿) | `roles-论文手/英文化工作流.md` |
| 获奖级评审门禁(盲评/有界迭代) | `获奖评审/评审门禁-award-gates.md` |
| 证据检索与引用核验 | `获奖评审/证据检索-evidence-search.md` |
| 完整获奖工作流方法论 | `获奖评审/工作流方法论-WORKFLOWS_zh.md` |
+ | 竞赛截止时间 / 可提交性优先 | `交付与截止时间协议.md` |
+ | 读题目/官方模板 PDF(双通道) | `scripts/read_pdf.py` + 本文件「第零步」 |
+
+ > **路径说明**:`scripts/*` 相对本 skill 根目录,其余相对 `references/`。
> 说明:`roles-论文手/*` 移自 `math-modeling-skill` 参考仓库;`获奖评审/*` 移自 `mathodology` 参考仓库。仅方法论文档,脚本/工具源码未搬入,需实现时按文档思路自行实现或之后单独补充。
## 交付物(写入 member-c/)
- `W1 证据大纲.md`(过程性)
- `完整论文.docx`(默认;或 `完整论文.pdf` / LaTeX 源码)
- `评审记录.md`:评审严重度、修复记录、迭代轮次、终检结果
- `ai使用声明.md`(若竞赛要求披露 AI 使用)
完成后 push 到 Gitee。
## 完成判定
- 论文建立在真实交付物证据上,无编造。
- 通过 W1 证据大纲与 W2 论文终检(含 **配图逐张图审 PASS**、**渲染 PDF 逐页审查 PASS**、**≥2 个不同模型的独立审查通过**)。
- 已 push 到 `member-c/`,未改动他人文件夹。
- 图审 / 渲染审查 / 独立评审若未执行(无视觉模型或子代理),如实标注对应受限项,不宣称所有质检通过。