数学建模竞赛最终验证和验收阶段,支持 Typst 和 LaTeX 双引擎。用于论文写完后检查章节数量、标题顺序、图表引用、数值一致性、占位符、内部文件泄露、参考文献、代码可复现性、编译和提交就绪状态。
61
72%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Low
Low-risk findings worth noting
Fix and improve this skill with Tessl
tessl review fix ./skills/6verity/SKILL.md本 skill 是完整工作流的最后一关。它不重新建模、不生成新结果、不代替写作阶段重写论文;它负责发现硬错误、修复可直接修复的问题,并输出 reports/VERIFY_REPORT.md。
如需领域判断,读取 ../_references/math_modeling_norms.md 中的"论文验收与一致性"小节。该文件只是规范知识库,不是固定执行流程;具体目录、入口文件、结果文件和图表目录由当前项目结构决定。
reports/VERIFY_REPORT.md 并标记为未通过。由模型先根据当前工作区判断项目布局,再把实际路径传给检查脚本。常见输入包括但不限于:
main.typ(Typst)或 main.tex(LaTeX)。.typ 或 .tex)。references.typ 或 references.tex)。不要假设论文目录一定叫 paper/,也不要假设结果文件一定在项目根。若项目使用不同命名,按实际结构传参并在 reports/VERIFY_REPORT.md 中说明。
优先运行本 skill 的脚本。脚本按入口文件扩展名自动选择检查逻辑(.typ → Typst 检查,.tex → LaTeX 检查):
set -o pipefail
mkdir -p _tmp
SCRIPT_PATH="<按当前 skill 实际位置确定>/scripts/writing_check.sh"
bash "$SCRIPT_PATH" \
--paper-dir "$PAPER_DIR" \
--main "$MAIN_FILE" \
--sections-dir "$SECTIONS_DIR" \
--references "$REFERENCES_FILE" \
--figures-dir "$FIGURES_DIR" \
--results-file "$RESULTS_FILE" \
--problem-analysis "$PROBLEM_ANALYSIS_FILE" \
--all-results "$ALL_RESULTS_FILE" \
| tee _tmp/writing_check.log如果本 skill 被复制到其他目录,使用实际脚本路径。可以先运行 bash <script> --help 查看参数。不要把脚本路径、论文目录或文件名写死在验收逻辑中。
脚本只扫描文本,不生成论文,也不编译 PDF。它的 FAIL 属于硬错误,必须修复后重跑。
Typst 引擎检查:
.typ 文件中 #include("...") 的数量是否与实际正文结构匹配。1_..., 2_..., 3_...。= 标题,等号后有空格)。LaTeX 引擎检查:
.tex 文件中 \input{...} 或 \include{...} 的数量是否与实际正文结构匹配。\section{} 或对应级别标题。通用检查(两种引擎):
ANALYSIS_MODELING_REPORT.md 的子问题数量核对。Typst 引擎检查:
#figure(image(...), caption: [...]) 的图片是否真实存在。图片路径必须相对于 .typ 文件。LaTeX 引擎检查:
\includegraphics{} 引用的图片文件是否真实存在。路径相对于 .tex 文件。\caption{} 是否存在。通用检查(两种引擎):
不要生成 *_typst_includes.typ 或 *_latex_includes.tex;图表必须直接嵌在对应 section 中。
检查并修复:
TODO、PLACEHOLDER、待补充、待续写、示例数据 等占位符。#list、enum,LaTeX 中大量 \begin{itemize}、\begin{enumerate})。检查:
发现数值冲突时,不要自行发明新结果;应回到结果记录或代码输出修正论文。
检查:
@label/#super,LaTeX 的 \cite{})是否能对应到真实参考文献。Typst 编译:
command -v typst >/dev/null 2>&1 && typst compile "$MAIN_FILE" "$OUTPUT_PDF"LaTeX 编译:
command -v xelatex >/dev/null 2>&1 && xelatex -interaction=nonstopmode "$MAIN_FILE" && xelatex -interaction=nonstopmode "$MAIN_FILE"xelatex 需跑两遍解决目录和交叉引用。
编译失败必须修复语法、路径、图片引用或模板问题后重跑。编译通过后确认输出 PDF 非空。
如果模型有视觉能力,必须把编译后的 PDF 每页导出为 PNG 并逐页查看。这个步骤用于发现纯文本扫描和编译器无法发现的版式错误。
优先使用系统已有工具导出页面 PNG;不要为了视觉检查引入沉重依赖。可选命令示例:
mkdir -p _tmp/pdf-pages
if command -v pdftoppm >/dev/null 2>&1; then
pdftoppm -png -r 160 "$OUTPUT_PDF" _tmp/pdf-pages/page
elif command -v mutool >/dev/null 2>&1; then
mutool draw -r 160 -o _tmp/pdf-pages/page-%03d.png "$OUTPUT_PDF"
elif command -v magick >/dev/null 2>&1; then
magick -density 160 "$OUTPUT_PDF" _tmp/pdf-pages/page-%03d.png
else
echo "No PDF rasterizer found; record visual check as not run."
fi导出后逐页检查:
如果是模板转换或已有参考 PDF 的项目,还应将不同引擎的 PDF 都逐页导出 PNG,按页对比版式差异;页数或页面尺寸不一致必须记录为硬错误或明确说明原因。
如果模型没有视觉能力,必须在 reports/VERIFY_REPORT.md 中明确写出“未执行视觉检查”的原因,并至少完成 PDF 非空、页数、页面尺寸等可程序化检查。
创建 reports/VERIFY_REPORT.md:
# 验证和验收报告
## 结论
PASS / FAIL
## 检查项
| 检查项 | 结果 | 说明 |
| --- | --- | --- |
## 章节结构
## 图表引用
## 数值一致性
## 文本质量门禁
## 编译
## PDF 视觉检查
## 仍需处理的问题只有当硬错误都修复、文本门禁通过、核心图表都引用、数值一致、编译通过或明确说明不可编译原因、视觉检查通过或明确说明无法执行原因时,才写 PASS。
以下问题必须判定 FAIL:
main.typ 或 main.tex)或核心正文。#include;LaTeX 入口缺少 \input/\include。= 后缺空格,LaTeX \section{} 缺失)。以下问题可判定为 WARN,但应尽量修复:
11f3862
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.