wuxinbo-bo/math-model-skills/delivery-assurance

Claude Code and agent skill by wuxinbo-bo/math-model-skills

Trust tier 2
  • community
LLM review pending
Source check pending

Checking that the SKILL.md file is still in the repository.

Meta-model-agent 完成编译、版式、匿名、页数、引用与提交前合规验收。适用于提交质量验收。

Install

npx vskill@latest install wuxinbo-bo/math-model-skills/delivery-assurance

SKILL.md

提交质量验收

数据准备一致性验收

有数据时,核对论文独立“数据预处理”小节、全部结果.json.data_preparation、数据/processed/ 文件哈希和模型代码读取路径一致,并确认处理前后质量统计与泄漏说明真实可复核。无数据时确认存在明确豁免且没有伪造的处理后数据或清洗结论。

模型身份与摘要一致性验收

逐问核验审计身份与论文表达卡。正式名称必须显式暴露线性/整数/鲁棒/随机规划、回归、时间序列、状态空间、车辆路径、网络流、多指标决策等标准结构;论文展示名称应简洁并保留主要结构。比较、验证或应用类问题必须说明继承关系,不得强造独立模型。摘要和正文先说明模型或继承关系,再说明核心方法;关键词至少包含一个标准模型族。

建模报告.md 的审计身份与 全部结果.json.model_identity 必须逐字一致;摘要和正文与论文表达卡保持语义一致,不得复制身份卡字段标签。最终摘要还必须拦截内部术语、完整算法链、未解释方案缩写、数字流水账和缺失的模型边界。

发布声明、公式与页面构成验收

  • 核对 全部结果.json.publication_claims 的来源键、派生关系与正文显示值;同一指标在摘要、正文、图表、表格和结论中不得冲突。
  • 核对真实问题数、逐问章节文件和主文件 \input/\include 一一闭合,禁止章节存在但最终 PDF 漏问。
  • 读取 latex-math.md,检查原生公式、符号与量纲、\eqref/\ref/\cref、重复标签和硬编码图表公式编号。
  • 读取 page-composition.md 并在实际 PDF 上执行页面审计。编译成功、页数合规和页面质量是三个独立门禁。
  • Overfull box、裁切、标题孤悬、图题分离和不可读小字在冠军模式下不得带入终稿;低占用页面必须人工确认是否来自章节自然结束,而不是用空白或大图填页。

必读的版面子协议

  • 始终读取 参考资料/paper-layout/core.md 与 body-density.md。
  • PDF/LaTeX 验收读取 latex-figures.md。
  • PDF/LaTeX 验收同时读取 latex-math.md 与 page-composition.md。
  • DOCX 验收读取 docx-figures.md。
  • 子协议中的尺寸和页数语义优先于本文件中的旧示例。

DOCX 路线使用 python 工具/docx_export.py --workspace . 生成 论文/数模论文.docx 和 论文/docx_report.json。不得对 DOCX 路线执行 XeLaTeX/BibTeX;验收以 Markdown 正文、DOCX 包、尺寸报告以及可选的 LibreOffice PDF 预览为准。

竞赛专用硬门禁

编译前必须读取 状态/工作流状态.json 中的竞赛 Profile 和 参考资料/竞赛规则.md:

  • CUMCM:核验当届官方通知、匿名电子正文、模板、引用、图表及编号/附件要求。
  • 51MCM:核验 51mcmthesis、withoutpreface、报名号/题号/组别字段,以及正文不存在学校、成员、邮箱和电话信息。
  • MCM/ICM:核验全英文、12pt、Summary Sheet、已填写 Control Number、A--F 题号、无个人/学校身份信息,完整 PDF 不超过 25 页。

编译成功不能覆盖竞赛 Profile 门禁失败。

稳定执行契约

  • 执行目标:完成论文编译、版式、匿名、页数、引用与提交文件的终局验收。
  • 调用参数:[paper-directory]。
  • 权威输入:论文/论文正文.tex、论文/章节/、图表资产、模板规则与竞赛要求。
  • 允许交付:论文/数模论文.pdf、论文/编译日志.log及必要的验收记录;仅可做有边界的修复。
  • 禁止写入:不得越权修改已冻结的上游事实、用户原始文件或本协议未授权的目录。
  • 可用工具边界:Bash(*), Read, Write, Edit, Grep, Glob。
  • 最小交付:PDF可打开、编译无关键错误、引用闭合、模板完整、匿名与页数合规。
  • 恢复入口:优先读取当前工作、状态记录和已有产物,从最近一次通过门禁的位置继续。
  • 失败回退:最多按既定次数修复编译;模型或结果问题必须回退上游,不得在验收阶段擅改事实。
  • 收口顺序:先核对输入,再完成产物,再运行本环节门禁,最后登记状态;门禁未通过不得宣告完成。

Compile and validate: $ARGUMENTS

运行参数

  • ENGINE = `xelatex`
  • MAX_COMPILE_ATTEMPTS = 3
  • PAPER_DIR = `论文/`
  • MAX_PAGES / COMPETITION — From Additional Parameters.

执行流程

工作节点 1:Validate environment
bash
if ! which xelatex 2>/dev/null; then
echo "xelatex not found, attempting install..."
if which miktex 2>/dev/null; then
miktex packages install xetex ctex xecjk gbt7714 fontspec
miktex fndb refresh
elif which initexmf 2>/dev/null; then
initexmf --set-config-value=[MPM]AutoInstall=1
fi
fi
which xelatex && which bibtex && echo "ready" || echo "xelatex/bibtex not found"
fc-list :lang=zh | head -5
kpsewhich gbt7714.sty 2>/dev/null || echo "gbt7714.sty not found (will auto-install on first compile)"
工作节点 2:Pre-compile cleanup
bash
if [ -f "工具/compile_utils.sh" ]; then
bash 工具/compile_utils.sh 论文/
elif [ -f "skills/shared-scripts/compile_utils.sh" ]; then
bash skills/shared-scripts/compile_utils.sh 论文/
else
echo "compile_utils.sh not found, manual cleanup needed"
fi

This utility auto-handles: special chars cleanup, table format fixes, includegraphics path correction (图表/ → ../图表/), hidelinks, 图表/图表/ nesting, math_commands conflicts, wide table resizebox wrapping, narrow table resizebox removal, light-color text fixes, TikZ library injection.

If script not found, perform these steps manually.

⛔ 表格行结束符修复(Misplaced \noalign 的根因):

bash
# 检测并修复 tabular/longtable 中的单 \ 行结束符(应该是 \\)
# 这是 heredoc 不加引号导致 \\ 被转义为 \ 的常见问题
for f in 论文/章节/*.tex; do
[ -f "$f" ] || continue
# 检测:tabular 环境内,行末只有单个 \ 后跟换行(应该是 \\)
if grep -P '(?<!\\)\\(?!\\)(?=\s*$)' "$f" | grep -v '\\begin\|\\end\|\\hline\|\\toprule\|\\midrule\|\\bottomrule\|\\caption\|\\label\|\\centering\|\\input\|\\include\|\\usepackage\|\\section\|\\subsection' > /dev/null 2>&1; then
echo "⚠ $(basename $f): 可能有表格行结束符问题(单 \\ 应为 \\\\)"
# 在 tabular/longtable 环境内,把行末的单 \ 替换为 \\
python3 -c "
import re
with open('$f', 'r', encoding='utf-8') as fh:
content = fh.read()
# 只在 tabular/longtable 环境内修复
def fix_table_endings(match):
table = match.group(0)
# 把数据行末尾的单 \ (后跟换行) 替换为 \\\\
fixed = re.sub(r'(?<=&[^&\n]*)\\\s*\n', r'\\\\\\\\\n', table)
return fixed
for env in ['tabular', 'longtable']:
pattern = r'(\\\\begin\{' + env + r'[*]?\}.*?\\\\end\{' + env + r'[*]?\})'
content = re.sub(pattern, fix_table_endings, content, flags=re.DOTALL)
with open('$f', 'w', encoding='utf-8') as fh:
fh.write(content)
" 2>/dev/null
fi
done

Additionally validate ref/label matching and embed missing visuals:

bash
mkdir -p 临时文件
grep -oh '\\ref{[^}]*}' 论文/章节/*.tex 论文/论文正文.tex 2>/dev/null | sort -u > 临时文件/_refs.txt
grep -oh '\\label{[^}]*}' 论文/章节/*.tex 论文/论文正文.tex 2>/dev/null | sort -u > 临时文件/_labels.txt
comm -23 <(sed 's/\\ref/\\label/g' 临时文件/_refs.txt) 临时文件/_labels.txt > 临时文件/_missing_labels.txt
cat 临时文件/_missing_labels.txt

⛔ 中文引号统一为全角引号(避免 PDF 出现 ''乱码或两个堆叠反引号):

中文论文用 xeCJK,全角引号 "..." 会自动化渲染为漂亮的对称弯引号。

LaTeX 风格 ` ...'' ` 在中文字体下会呈现成两个堆叠的反引号,很丑。

ASCII 直引号 "..." 在 LaTeX 中渲染为右右引号 ''...''。

统一替换为全角引号。

bash
# 把所有错误引号统一为全角引号
for f in 论文/章节/*.tex; do
[ -f "$f" ] || continue
python3 -c "
import re
content = open('$f', 'r', encoding='utf-8').read()
# 保护数学环境
placeholders = []
def stash(m):
placeholders.append(m.group(0)); return f'\\x00M{len(placeholders)-1}\\x00'
content = re.sub(r'\\\$[^\\\$]*\\\$', stash, content)
content = re.sub(r'\\\\\\[.*?\\\\\\]', stash, content, flags=re.DOTALL)
# 保护 \begin{verbatim}/lstlisting 等代码环境
content = re.sub(r'\\\\begin\{(verbatim|lstlisting|minted)\}.*?\\\\end\{\\1\}', stash, content, flags=re.DOTALL)
# 1. LaTeX 风格 ``...'' → 全角双引号
content = re.sub(r\"\`\`([^\`'\\\\n]+?)''\", '\u201c\\\\g<1>\u201d', content)
# 2. ASCII 直引号 \"...\" → 全角双引号(成对处理)
parts = content.split('\"')
if len(parts) > 2:
result = parts[0]
for i, p in enumerate(parts[1:], 1):
result += ('\u201c' if i % 2 == 1 else '\u201d') + p
content = result
# 还原
for i, ph in enumerate(placeholders):
content = content.replace(f'\\x00M{i}\\x00', ph)
open('$f', 'w', encoding='utf-8').write(content)
" 2>/dev/null
done

If labels are missing, find corresponding figure/table code in 图表/*.tex and embed into the correct section file.

Also verify compile_utils.sh output for "UNEMBEDDED" warnings against figure_manifest.json. Only an item selected for publication is a blocking omission.

MANDATORY FIX LOOP — do NOT proceed to compilation until every `publish=true` figure and every table selected by the manuscript embedding plan is embedded:

bash
UNEMBED=0
# Validate PDF visuals
for pdf in 图表/*.pdf; do
[ -f "$pdf" ] || continue
bn=$(basename "$pdf")
python3 -c "import json,sys; d=json.load(open('图表/figure_manifest.json',encoding='utf-8')); sys.exit(0 if any(x.get('publish') and x.get('path','').replace('\\\\','/').endswith('/'+sys.argv[1]) for x in d.get('figures',[])) else 1)" "$bn" || continue
grep -rq "$bn" 论文/章节/*.tex 论文/论文正文.tex 2>/dev/null || { echo "UNEMBEDDED PDF: $bn"; UNEMBED=$((UNEMBED+1)); }
done
# Validate only TABLE_*.tex files selected by the manuscript embedding plan
for tbl in 图表/TABLE_*.tex; do
[ -f "$tbl" ] || continue
bn=$(basename "$tbl")
python3 -c "import json,sys; d=json.load(open('图表/figure_manifest.json',encoding='utf-8')); sys.exit(0 if any(x.get('publish') and x.get('path','').replace('\\\\','/').endswith('/'+sys.argv[1]) for x in d.get('tables',[])) else 1)" "$bn" || continue
# Validate if any label from this table file appears in sections
for lbl in $(grep -oh '\\label{[^}]*}' "$tbl" 2>/dev/null); do
grep -rq "$lbl" 论文/章节/*.tex 论文/论文正文.tex 2>/dev/null || { echo "UNEMBEDDED TABLE: $lbl (from $bn)"; UNEMBED=$((UNEMBED+1)); }
done
done
# Raw 图表引用.tex labels are diagnostic; the published asset loops above remain authoritative
echo "Total unembedded: $UNEMBED"

If UNEMBED > 0, you MUST fix all selected publication items before compiling. For each unembedded item:

  • PDF figure: copy the \begin{figure}...\end{figure} block from 图表/图表引用.tex into the target section
  • TABLE_*.tex: copy the \begin{table}...\end{table} block from 图表/TABLE_*.tex into the target section (use \input{../图表/TABLE_xxx.tex} or paste the tabular code directly)
  • Add 1-2 sentences of lead-in text before and 3-5 sentences of analysis after each embedded item
  • Re-run the count verify above — repeat until UNEMBED = 0

Do NOT compile with unembedded publication figures or selected正文 tables. Unpublished diagnostic assets are allowed to remain outside the paper.

bash
# Diagnose generated PDFs; only publish=true omissions are blocking
for pdf in 图表/*.pdf; do
[ -f "$pdf" ] || continue
bn=$(basename "$pdf")
python3 -c "import json,sys; d=json.load(open('图表/figure_manifest.json',encoding='utf-8')); sys.exit(0 if any(x.get('publish') and x.get('path','').replace('\\\\','/').endswith('/'+sys.argv[1]) for x in d.get('figures',[])) else 1)" "$bn" || continue
grep -rq "$bn" 论文/章节/*.tex 论文/论文正文.tex 2>/dev/null || echo "⚠ $bn not referenced"
done
执行节点 3:Compile (manual steps, no latexmk)
bash
cd 论文/
xelatex -interaction=nonstopmode 论文正文.tex
bibtex 论文正文
xelatex -interaction=nonstopmode 论文正文.tex
xelatex -interaction=nonstopmode 论文正文.tex
执行节点 4:Error fix loop (MANDATORY — do NOT skip)

After each compilation, verify 编译日志.log for CRITICAL errors. You MUST fix ALL errors before declaring compilation complete.

bash
# Count critical errors
MATH_ERR=$(grep -c 'Bad math environment delimiter\|Missing \$ inserted\|begin{document} ended by' 论文/编译日志.log 2>/dev/null || echo 0)
LR_ERR=$(grep -c 'Not allowed in LR mode' 论文/编译日志.log 2>/dev/null || echo 0)
UNDEF_CS=$(grep -c 'Undefined control sequence' 论文/编译日志.log 2>/dev/null || echo 0)
TOTAL_ERR=$((MATH_ERR + LR_ERR))
echo "Math errors: $MATH_ERR, LR mode errors: $LR_ERR, Undefined CS: $UNDEF_CS"
if [ "$TOTAL_ERR" -gt 0 ]; then
echo "CRITICAL: $TOTAL_ERR errors — MUST FIX prior to proceeding"
# Show error locations
grep -B2 'Bad math\|Missing \$ inserted\|begin{document} ended\|Not allowed in LR mode' 论文/编译日志.log | grep -E '^\./|^l\.' | head -20
fi

Error fix rules (iterate up to 5 times, not 3):

  1. Math environment errors (Bad math environment delimiter, Missing $ inserted, \begin{document} ended by \end{equation}):
  • Read the error location from 编译日志.log (e.g., ./章节/3_model_theory.tex:42)
  • Open the file and find the broken math: usually \X(t)$ should be $X(t)$, or \mu$ should be $\mu$
  • Common cause: a sed/cleanup script stripped the opening $ but left the closing $
  • Fix: ensure every math expression has matching $...$ or \[...\] delimiters
  • Do NOT use broad sed patterns to fix math — read each error location and fix individually
  1. LR mode errors (Not allowed in LR mode):
  • Usually caused by \begin{figure} or \begin{table} inside a paragraph without proper separation
  • Fix: add \par or blank line before the float environment
  1. Undefined control sequence:
  • Missing package → add \usepackage{xxx} to 论文正文.tex preamble
  • Typo in command → fix the command name
  1. BibTeX failures:
  • If BibTeX fails because of earlier LaTeX errors, fix the LaTeX errors first, then recompile
  • Verify that \bibliography{references} and \bibliographystyle{plainnat} exist in 论文正文.tex
  • Verify that references.bib has no syntax errors (unmatched braces, missing commas)

After each fix, recompile and reverify:

bash
cd 论文/
xelatex -interaction=nonstopmode 论文正文.tex
bibtex 论文正文 2>&1 | tail -5
xelatex -interaction=nonstopmode 论文正文.tex

This is the start of the file. Read the full SKILL.md on GitHub.

Security

  • Security scanPassed, 100 of 100Pattern checks on the skill's files.
  • Model reviewNot runA model review is scheduled for the next rescan.

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository stars
74
7-day trend score
22

Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/wuxinbo-bo/math-model-skills/delivery-assurance/badge)](https://verified-skill.com/skills/wuxinbo-bo/math-model-skills/delivery-assurance)

Something wrong with this skill or its page? Tell us.