- name
- mathmodel-score
- description
- 论文评分与质量自检模块:按百分制五维(摘要 30 / 算法模型 20 / 创新性 20 / 写作 15 / 排版 15)对论文打分,交付前逐项自检并给出扣分明细、优化轮次与达标判定。用 score_card.py 把评分卡 JSON 校验并渲染成评分表(达标线 85,一票否决直接淘汰,熔断 3 轮)。当用户要求给论文打分、自检、生成评分表、评估能否交付、判断 AI/合规风险时触发。建模与写作规范以主技能 mathmodel-core 为准,版式与去 AI 分别见 mathmodel-paper / mathmodel-deai。
- allowed-tools
- Bash(*), Read, Write, Edit, Grep, Glob
# 论文评分与质量自检
## 定位
本技能是 `mathmodel-core` 主技能的**配套评审件**,只管「论文能不能交付、差在哪、扣几分」:
- **章节结构自检**:按 [`docs/chapter-checklist.md`](docs/chapter-checklist.md) 逐章核对(摘要三段式、问题重述/分析、假设编号、符号说明三线表、模型建立与求解链条、模型评价优缺点、参考文献、附录源程序、AI 使用声明、匿名与篇幅),可判定项由 `code/check_chapters.py` 自动执行——整理自《优秀论文自检表》与全国大学生数学建模竞赛论文格式规范(2026 年修订稿),契约在 `code/chapter-checklist.json`。
- **整体质量自检**:按 [`docs/self-check.md`](docs/self-check.md) 逐项核对(致命 / 严重 / 中等 / 轻微四级)。
- **评分**:按 [`docs/rubric.md`](docs/rubric.md) 的百分制五维口径打分;结构 hard 项未过不可进入评分。`code/score_card.py` 校验评分卡并渲染评分表,给出达标判定与优化轮次。
- 不管:赛题分析、算法选择、代码实现、论文写作与版式排版、去 AI 与字符清理——分别以 `mathmodel-core`、`mathmodel-paper`、`mathmodel-deai` 为准。
- **表述口径以 `mathmodel-deai` 为准**:模板腔/套话/句式与段落节奏/零宽字符的判定权在该技能,本技能只引用其退出码与报告折算扣分;已知协调见 `docs/rubric.md`「与去 AI 模块的分工」(编号分点不计入句式与段落统计;统一格式指信息结构而非字数齐平)。
- **规范条文以本技能 `docs/` 为唯一权威出处**;主技能只保留强制项摘要并指向本文件,避免两处规范漂移。
## 评分标准
| 维度 (id) | 满分 | 评分依据 |
|---|---|---|
| 摘要 (`abstract`) | 30 | 结构完整性、数值具体性、递进关系、与正文一致性 |
| 算法/模型正确性 (`model`) | 20 | 数学推导无误、约束完备、求解结果合理 |
| 创新性 (`innovation`) | 20 | 方法创新度、跨学科融合、指标构建独创性 |
| 写作能力 (`writing`) | 15 | 逻辑连贯、学术语态、数据支撑、无空泛表达 |
| 排版 (`layout`) | 15 | 格式规范、图表完整、符号一致、编译无误 |
| **合计** | **100** | **$S \geq 85$ 方可最终输出** |
- **结构门槛**:章节结构 hard 项未过(缺符号说明、缺模型评价优缺点、附录缺源程序、正文含目录、出现身份信息等)先补齐,**不进入评分**
- **一票否决**:出现参赛者身份/学校/赛区信息或页眉等红线,直接淘汰、不计分,不进入优化循环
- **熔断**:最大优化轮次 **3 轮**;3 轮后仍未达标即输出当前版本并标注"未达 85 分标准,需人工复核"
- 扣分项与自检项一一对应;同一缺陷不在两个维度重复扣分(细则见 `docs/rubric.md`)
- **两赛口径**:国赛以「假设合理性、建模创造性、结果正确性、表述清晰性」为主,格式规范为硬约束;美赛不设分值表、第一轮只读摘要,看重问题驱动与思考痕迹(见 `docs/rubric.md` 末节)
## 快速流程
1. **章节结构门槛**(先跑,hard 未过先补齐再往下):
```bash
python3 code/check_chapters.py paper/paper.tex # 默认国赛口径;0 通过 / 1 有未过项 / 2 用法错误
python3 code/check_chapters.py paper/paper.tex --rules mcm # 美赛口径(放宽目录要求,按 25 页限制)
python3 code/check_chapters.py --list-checks # 查看结构契约(hard/soft/人工)
```
逐条判据见 [`docs/chapter-checklist.md`](docs/chapter-checklist.md),数据契约在 `code/chapter-checklist.json`;判定前会自动剔除 LaTeX 注释与代码块。
2. **整体质量自检**:按 `docs/self-check.md` 的四级清单逐项核对,记录未过项;涉及零宽字符/去 AI 的部分调用对应专项技能的门禁命令。
3. **填评分卡**(每维度给分并写明扣分项,可含优化轮次):
```json
{
"schema_version": "1.0",
"paper": "第X题_赛题简称",
"round": 1,
"veto": false,
"dimensions": [
{"id": "abstract", "score": 26, "deductions": [
{"item": "字数超出 800-1000 字范围", "penalty": 3, "note": "摘要 1120 字"}]},
{"id": "model", "score": 18, "deductions": []},
{"id": "innovation", "score": 15, "deductions": []},
{"id": "writing", "score": 13, "deductions": []},
{"id": "layout", "score": 14, "deductions": []}
]
}
```
完整示例见 [`examples/example-scorecard.json`](examples/example-scorecard.json)。
4. **校验并渲染评分表**:
```bash
python3 code/score_card.py scorecard.json # 退出码 0 达标 / 1 需优化 / 2 输入错误
python3 code/score_card.py scorecard.json --json # 机器可读输出(含 verdict 与扣分明细)
python3 code/score_card.py --list-dimensions # 查看维度契约(含满分)
```
脚本只做校验、加权汇总与渲染,不替使用者判断扣分;扣分合计与 (满分-得分) 不一致时会在 stderr 给出提示。
5. **按判定优化**:`判定:需优化`($S<85$ 或任一维度为 0)时,按扣分分值从高到低逐项修改后重新评分;超过 3 轮触发熔断。
## 评分卡契约
- 顶层字段:`schema_version`、`paper`、`round`(可选)、`veto`(布尔)
- `dimensions` 必须恰好覆盖五个维度 id,`score` 为 0 到该维度满分之间的数值,缺失/未知/越界/重复均为输入错误(退出码 2)
- `deductions[]` 每项含 `item`(检查项)、`penalty`(扣分)、`note`(说明)
- 机器可读契约:`score_card.py --list-dimensions --json`
## 目录结构
```
mathmodel-score/
├── SKILL.md # 本文件:定位 + 评分标准 + 快速流程 + 评分卡契约
├── README.md # 目录组织说明
├── code/
│ ├── chapter-checklist.json # 章节结构与格式规范契约(hard/soft/人工,数据源)
│ ├── check_chapters.py # 章节结构自检器(国赛/美赛口径,退出码 0/1/2)
│ └── score_card.py # 评分卡校验与渲染(argparse 入口,退出码 0/1/2)
├── docs/
│ ├── rubric.md # 百分制评分细则(唯一权威):权重、各维度扣分、结构门槛、两赛口径、优化与熔断
│ ├── chapter-checklist.md # 章节结构自检清单(人读版,逐章逐条)
│ └── self-check.md # 论文质量自检清单(交付前审计,四级)
└── examples/
├── example-scorecard.json # 示例评分卡(达标,总分 86)
├── chapter-sample.tex # 结构正例(hard 全过)
└── chapter-missing-sample.tex # 结构反例(多项 hard 未过)
```
## 与其他技能的关系
| 技能 | 关系 |
|---|---|
| `mathmodel-core` | 主技能。阶段六「论文评分与优化」与「论文质量自检清单」已收敛到本技能,主技能保留强制项摘要并指向本文件 |
| `mathmodel-deai` | **表述与字符口径的唯一权威**:自检中的「全文无 AI 痕迹」「零宽/不可见字符」由该技能的 `check_phrasing.py` / `check_style.py` / `strip_invisible.py` 判定,本技能只引用其结果折算扣分;编号分点不计入其句式与段落统计,避免与本技能要求的「假设 X」分点互相误伤 |
| `mathmodel-paper` | 自检中的「PDF 与 Word 格式一致性」「三线表/页眉页码」对应其版式规范与 `word_postprocess.py` |
| `mathmodel-figure` / `mathmodel-diagram` | 自检中的图表编号、图题表题、配色可辨识性对应其出图规范 |
عرض على GitHub