关于 paper-workflow-orchestrator
paper-workflow-orchestrator 是用于数学建模竞赛论文的工作流编排 Skill,供 Agent 按阶段执行从输入检查到文档交付的任务。它依靠文件、哈希和阶段检查报告管理进度,并要求先通过证据验证再进入正式写作。
主要功能
- 01检查输入文件与运行依赖
- 02按 S0–S8 阶段引导任务
- 03通过状态报告选择后续 Skill
- 04验证建模结果与证据链
- 05检查论文格式和渲染结果
适用场景
- 01从竞赛题目输入开始推进论文工作
- 02从中断状态恢复并继续对应阶段
- 03在正式写作前验证模型结果证据
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ yushui2022/ mathmodel-skill --skill paper-workflow-orchestrator安装后在 Claude Code 中输入/paper-workflow-orchestrator确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
MATHMODEL_EDITION.jsonagents/openai.yamlscripts/preflight_check.pyprepare_output_layout.pyquickstart_run.pyrun_all.pyworkflow_guard.py详细介绍
MathModel Standard Orchestrator
将此技能用作完整竞赛论文任务的唯一入口路由。Standard 面向能够维护较长证据链并可靠执行工具、同时控制成本的强大模型。它不使用 Pro 多 Agent 锦标赛或审批检查点。
开始或恢复
在竞赛项目根目录中运行:
python .claude/skills/paper-workflow-orchestrator/scripts/preflight_check.py
python .claude/skills/paper-workflow-orchestrator/scripts/workflow_guard.py --status
读取 paper_output/qa/workflow_guard_report.json,并按照 recommended_skill 和 next_action 执行。当前文件及其哈希优先于对话记忆。
在守卫要求通过之前,不要运行下游技能。子技能完成后,返回此处并重新评估状态。
S0-S8
S0 输入准入
preflight_check.py 会清点 problem_files/、计算每个输入的哈希、检查运行时依赖、准备 paper_output/,并拒绝混用不同 MathModel 版本。必需输出:
paper_output/preflight_report.jsonpaper_output/input_manifest.jsonpaper_output/OUTPUT_LAYOUT.md
S1 问题分析
使用 $problem-doc-model-selector 创建 paper_output/step1/problem_analysis.json。必须能够追溯每个问题、附件、字段、目标、约束、歧义及必需输出。
S2 模型与评分标准路由
使用 $modeling-paper-rubric-and-model-selector。生成:
paper_output/plan/model_route.jsonpaper_output/plan/rubric_alignment.jsonpaper_output/plan/scoring_strategy.md
仅在确有必要使用公开外部数据时,才使用 $authoritative-data-harvester。保留来源身份和检索记录。
S3 数据与可视化计划
使用 $data-cleaning-and-visualization。只读取输入清单中分类的文件,并生成新的加载报告、数据计划、可视化计划、图表索引和清理后的数据。竞赛专用代码应放在 paper_output/code/ 下,切勿放入已安装的技能中。
S4 可复现模型代码
使用 $model-code-and-result-generator,在 paper_output/code/modeling/ 下编写针对具体问题的代码,包括 run_modeling.py 和各问题模块。代码必须生成机器可读的结果契约。
S5 实际执行
运行建模代码。在 paper_output/results/run_manifest.json 中保留脚本、输入、输出、退出代码、大小和 SHA-256 记录。必需证据包括模型结果、有限值指标、结论、表格和可用图表。草稿占位内容不算证据。
S6 证据关卡
使用 $quality-assurance-auditor 并运行官方证据验证:
python .claude/skills/quality-assurance-auditor/scripts/evidence_gate.py --mode official
只有当 paper_output/qa/evidence_gate_report.json 状态为 PASS,且所有记录的输入仍为最新时,才能开始正式写作。
S7 自适应正式写作
仅使用 $paper-formal-writer 作为正式作者:
python .claude/skills/paper-formal-writer/scripts/build_paper_outline.py
python .claude/skills/paper-formal-writer/scripts/prepare_authoring.py --mode auto
通常的竞赛论文应逐节完整撰写,可分多轮完成。保留正式写作器声明的竞赛范围;短报告必须有用户明确要求的范围及理由。使用 validate_authoring.py --section 审核每份草稿;若全局重复失败,则退回逐节模式。某一节中第二次出现相同类别的问题时,将进入 micro-repair 路由;只有此时才可使用 $paper-micro-unit-generator 修复排队的位置。第三次出现相同类别的问题会阻止 S7,并建议使用 Lite,但不会自动切换。
所有当前单元均通过后:
python .claude/skills/paper-formal-writer/scripts/assemble_sections.py
python .claude/skills/paper-formal-writer/scripts/validate_authoring.py --assembled
Agent 随后必须将完整组稿整体修订为 paper_output/final_paper_source.md;仅复制并提升内容将被拒绝。最后执行:
python .claude/skills/paper-formal-writer/scripts/validate_authoring.py --final
python .claude/skills/paper-formal-writer/scripts/format_formal_docx.py
S8 格式与渲染关卡
运行:
python .claude/skills/paper-formal-writer/scripts/check_paper_format.py --render required
交付要求 paper_output/format_check_report.json 中有最新的 PASS。修复报告指出的源文件、公式、引文、图表、DOCX、分页或 PDF 问题后重新运行;切勿编辑报告来强行制造 PASS。
正式输出
paper_output/plan/writing_plan.json
paper_output/context/authoring_state.json
paper_output/qa/draft_audit.json
paper_output/qa/repair_queue.json
paper_output/drafts/sections/*.md
paper_output/drafts/assembled_draft.md
paper_output/final_paper_source.md
paper_output/final_paper.docx
paper_output/format_check_report.json
旧版微单元和快速入门输出仍保存在 paper_output/drafts/legacy/ 和 paper_output/quickstart/ 下。它们绝不能满足 S7 要求。
不可妥协的不变量
- 绝不编造模型结果、数据源、成功运行记录、引用或验证结果。
- 每项关键数值声明都必须能追溯到当前机器可读证据。
- 任何上游哈希变更都会使依赖它的 S6-S8 报告失效。
- 每个纳入的图表都必须实际存在、已编入索引、已引用并得到解读。
- 正式公式必须转换为可编辑的 Word OMML;不得用截图或纯文本替代。
- 不要在论文正文中暴露技能名称、守护命令或工作流说明。
- 不要将竞赛专用代码写入已安装的技能目录。
- 每个竞赛项目只安装一个 MathModel 版本。
恢复
对于中断或耗时较长的任务:
python .claude/skills/paper-workflow-orchestrator/scripts/workflow_guard.py --status
python .claude/skills/context-memory-keeper/scripts/update_workflow_memory.py
读取守护报告、当前阶段契约和 paper_output/context/workflow_memory.json;从第一个失败的阶段继续,而不是重放已完成的工作。