关于 paper-formal-writer
paper-formal-writer 是数学建模竞赛论文的正式写作 Skill,供 Agent 将已通过验证的证据整理为 Markdown 稿件和 Word 文档。它包含章节草拟与审查、全稿修订、公式转换及格式渲染检查流程。
主要功能
- 01根据证据生成论文大纲
- 02准备自适应章节写作计划
- 03审查章节与最终稿
- 04汇编并全局修订论文
- 05转换为可编辑公式的 Word 文档
适用场景
- 01依据已验证结果撰写竞赛论文
- 02修订章节并检查证据和引用
- 03生成并检查最终 Word 论文
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ yushui2022/ mathmodel-skill --skill paper-formal-writer安装后在 Claude Code 中输入/paper-formal-writer确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
agents/openai.yamlreferences/competition-scope.mdcumcm-paper-standard.mdfigure-table-writing-rules.mdformal-paper-template.mdsection-expansion-rules.mdscripts/assemble_sections.pyauthoring_contracts.pybuild_paper_outline.pycheck_paper_format.pyformat_formal_docx.pyformula_omml.pypaper_scope.pyprepare_authoring.pyvalidate_authoring.py详细介绍
论文正式写作
此技能是 Standard 中唯一的正式作者和最终稿件制作工具。它会将全新的 S6 证据链转化为经过审核的 Markdown 源文件和包含原生公式的 Word 文档。
入口
正式写作前运行:
python .claude/skills/paper-workflow-orchestrator/scripts/workflow_guard.py --skill paper-formal-writer
S0-S6 必须全部通过。如果工作流状态不确定,请运行 workflow_guard.py --status,并以当前产物报告为准,而不是凭记忆判断。
唯一正式流程
S6 evidence PASS
-> writing plan
-> chapter drafts
-> chapter audits
-> queued local repair when required
-> deterministic assembly
-> Agent global revision
-> final Markdown audit
-> formal DOCX
-> S8 format/render gate
不要将 quickstart、legacy 或机械合并的微单元输出提升为正式文件名。
准备
- 构建充分考虑证据的大纲:
python .claude/skills/paper-formal-writer/scripts/build_paper_outline.py
- 准备自适应写作:
python .claude/skills/paper-formal-writer/scripts/prepare_authoring.py --mode auto
默认交付模式为 competition:规划至少 14000 个有效字符,正文至少 8000 字符,附录前至少有 18 页渲染页数。这些是可调整的项目默认值,并非竞赛规则。写作前请核实实际竞赛的页数上限和计数规则。因此,auto 会选择 section;短报告需要使用 --delivery short-report --scope-reason "user-requested scope"。自定义下限可使用 --min-pages / --min-body-chars 并说明原因;切勿仅为了让失败检查变为通过而降低下限。
准备范围或修复篇幅不足的稿件时,请阅读 references/competition-scope.md。多轮写作可以共同完成一个连贯章节;应在各轮之间保留证据和符号,而不是将论文压缩成一次回复。
权威的 S7 合约如下:
paper_output/plan/writing_plan.jsonpaper_output/context/authoring_state.jsonpaper_output/qa/draft_audit.jsonpaper_output/qa/repair_queue.json
起草与审核
只写入 authoring_state.json 中当前单元对应的路径。每章都必须是完整、连贯的章节,并包含其所需的可移除标记:
审核每份已更改的草稿:
python .claude/skills/paper-formal-writer/scripts/validate_authoring.py --section <section-id>
路由规则是确定性的:
global中同一阻断类别重复出现两次:切换到section。- 某个章节失败一次:重写该章节。
- 某个章节中同一类别重复出现两次:
$paper-micro-unit-generator只能修复队列中的位置。 - 同一类别第三次导致内容变更:S7 变为
BLOCKED;报告原因,并建议用户选择 Lite,但不要自动切换。
审核会阻止篇幅过短的草稿、缺少章节/证据/数字的草稿、公式损坏、占位符、重复文本、图表引用损坏以及内部工作流语言。
汇编与修订
所有启用的单元均通过后:
python .claude/skills/paper-formal-writer/scripts/assemble_sections.py
python .claude/skills/paper-formal-writer/scripts/validate_authoring.py --assembled
汇编器会按大纲顺序整理内容,移除证据注释,并保留现有编号。它会写入 paper_output/drafts/assembled_draft.md。
然后通读汇编后的完整草稿和证据链,并对全文进行整体改写,输出至:
paper_output/final_paper_source.md
此步骤必须统一术语、符号、过渡、论证顺序、引用、图注和结论。原样复制汇编后的草稿将被拒绝。
运行最终源文件审核:
python .claude/skills/paper-formal-writer/scripts/validate_authoring.py --final
对证据、写作计划、获准的章节草稿、汇编结果或最终源文件进行任何更改,都会使下游 PASS 状态失效。
Word 与 S8
仅当 authoring_state.status = PASS 后:
python .claude/skills/paper-formal-writer/scripts/format_formal_docx.py
python .claude/skills/paper-formal-writer/scripts/check_paper_format.py --render required
正式模式要求使用最新的 S6 和 S7 哈希。--allow-draft 可生成 final_paper_draft.docx 用于版式诊断,但这绝不满足 S7/S8 要求,也不会覆盖正式 DOCX。
format_formal_docx.py 会将 LaTeX 转换为可编辑的 Word OMML,并阻止转换失败的情况。check_paper_format.py 会检查动态长度、必需层级、引用、与证据关联的图表、公式、重复文本、DOCX 结构、LibreOffice PDF 渲染、页数以及可提取文本。
写作标准
- 使用
1 / 1.1 / 1.1.1标题,并包含完整的 CUMCM 章节。 - 针对每个问题,串联假设、变量、推导、算法、计算结果、验证、不确定性和结论。
- 在公式前定义符号,并解释每项展示结果。
- 引用并解读所有纳入的图表。
- 仅使用当前证据;绝不编造运行记录、数值、来源或验证结果。
- 避免仅为满足篇幅要求而复制段落或替换数字。
- 正文中不写实现语言;可复现路径应放在附录中。
参考资料
- 格式标准:references/cumcm-paper-standard.md
- 完整论文结构:references/formal-paper-template.md
- 章节扩展:references/section-expansion-rules.md
- 图表、公式和结果:references/figure-table-writing-rules.md
仅阅读当前写作或修复决策所需的参考资料。
交接
每次重要转换后,运行工作流状态检查,并更新 paper_output/context/workflow_memory.json:
python .claude/skills/paper-workflow-orchestrator/scripts/workflow_guard.py --status
python .claude/skills/context-memory-keeper/scripts/update_workflow_memory.py
只有机器可读格式报告为 PASS 且为最新状态时,S8 才算完成。