mathmodel-studio — 数学建模 多竞赛通用 Skill (v2.6.0, 数模工坊 MathModel Studio)

SkillMedia

End-to-end assistant for mathematical modeling competitions. From choosing a problem, analyzing it, building models, solving, and verifying, to writing the paper, creating figures, simulating review, and packaging the submission, it guides you stage by stage to a submittable competition paper. Suppo

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the mathmodel-studio — 数学建模 多竞赛通用 Skill (v2.6.0, 数模工坊 MathModel Studio) skill

What this skill tells your AI

The instructions your AI receives, as published by yan315598-design/mathmodel-studio in SKILL.md and read by ahel’s review.

版本与总述

当前版本 v2.6.0(2026-09-11)。本版做了三件事:① 选型告知前移到用户可见——新增模型选型入口、选择卡加“依据与文献”列、新增《选型总表》;② 外源文献检索由“未命中才触发”改为选型期默认触发;③ 修通 11 处加载不到的文件引用(含 L2/L4 反馈层、stage 4/6/7 加载表、竞赛经验笔记)。上一版 v2.5.0(2026-09-10)主打领域 playbook 与图表图题纪律。完整历史见 CHANGELOG.md

建模证据纪律(现行规则):进入 Stage 2/3/5/8 时按需读取 references/modeling_evidence_protocol.md,机制案例另读 references/mechanism_distillation.md。历史范例中的固定变量数、强制凑三族、修饰词命名和默认复用,不再作为质量要求;题面给定输入优先于跨问复用。

流程分五幕、共十个阶段(-1~9),把"3-4 天打 1 篇竞赛论文"变成可检查的步骤,全程问答式——用户只需回答编号问题,不必手敲命令。每阶段产出经过自评打分和局部精修,终局由多评委模拟评审把关。六个竞赛分支中,研究生赛、华数杯和国赛共享检索、模型接口与论文证据链,但题目、奖项、经验统计和案例身份严格隔离。

图表能力速览:自写模板 27 件(数据图 17 + 示意图 4 + 可编辑 drawio 6),统一色板,出图自动过质量检查——文字重叠越界直接报错,图内不放图名(图名写图注)。复杂多面板主图、物理场图、网络流图、TikZ 框架图由内嵌开源图表库补齐,路由细则见 references/figure_skill_bridge.md


Codex 编号菜单协议

Codex CLI / Codex app 通常不会弹出 Claude Code 的 AskUserQuestion 选择界面。运行在 Codex 时, 不等待、不承诺弹窗 UI; 直接用 Markdown 编号菜单完成选择。

固定规则:

  • 离散选择必须给 1) 到最多 5) 的编号菜单。
  • 主竞赛菜单固定为 1) huaweibei 研究生赛 2) huashubei 华数杯 3) cumcm 国赛 4) 其他竞赛 5) 让我决定;选择 4 后再选 mcm / diangong / apmcm。上下文出现“华为杯/研究生赛”时默认 huaweibei,出现“华数杯”时默认 huashubei
  • 题号、模型、verdict、是否进入下一阶段等选择都沿用编号菜单。
  • 自由文本只问短输入, 例如队员分工、截止时间、题目 PDF 路径。
  • 用户回复数字后, agent 自动写入 cwd/state/decision_log.json 并继续下一步; 不要求用户手写 JSON, 不二次确认。

Codex 菜单格式:

【需要你选择: <一句话标题>】

  1) <选项 A> — <一句话解释>
  2) <选项 B> — <一句话解释>
  3) <选项 C> — <一句话解释>
  4) <选项 D> — <一句话解释>
  5) 让我决定 — <推荐项和原因>

回复数字 (1-5) 或直接告诉我你的选择。

Codex 实战入口路由

当用户在 Codex 中用自然语言召唤本 skill, 先按意图路由, 不必强行从 Stage 0 开始。

用户说法入口首要动作
"开始建模" / "我要打国赛/研究生赛/华数杯"工作台菜单先给 references/codex_practical_menu.md 的一屏式菜单
"华为杯" / "研究生赛" / "研赛"研究生赛专项competition=huaweibei; 加载跨赛共用层与 competitions/huaweibei/ 独立分支 + references/huaweibei_battle_plan_72h.md 作战表
"华数杯" / "我要打华数杯" / "华数杯国一"华数杯专项加载 references/huashubei_battle_plan_72h.md, competition=huashubei, 国一标准
"比较 A/B/C 题" / "帮我选题" / "华数杯选哪题"Stage 1加载 topic_specs.json; huashubei 额外加载 references/huashubei_topic_decision.md
"这道题用什么模型" / "帮我选模型" / "给选型建议"Stage 3 选型(选择卡)加载 references/stage_03_model_selection.md,按题目域先查 playbook/案例库,再出每问候选短名单与《选型总表》,不进入求解
"帮我求解" / "直接解这道题"检查 state 后进 Stage 5先读 cwd/state/decision_log.json;若无 stage 3 选型记录,必须先补走 stage 3 选择卡,不得直接求解
"帮我查文献" / "有文献支持吗" / "这个方法有人做过吗"文献检索(stage 1/3/5 挂点)加载 references/literature_scout.md,跑 scripts/literature_scout.py,方法卡转写机制条目并标 review_status
"写摘要" / "写华数杯摘要" / "写亚太杯摘要"Stage 8 局部写作加载对应竞赛 abstract_template.md + phrase_bank.md
"写问题分析/模型段/结果解释/图表说明"Stage 8 局部写作只生成对应章节, 不改 state, 除非用户要求进入完整流程;若用户要的是求解或选型,不得走本入口,必须先过 stage 3 选择卡(局部入口绕开 state 等于绕开全部必停点登记)
"画图/生成图/美化图/规划图表/终审图表"图表桥接加载 references/figure_skill_bridge.md(配色规范:references/color_typology.md + 设计令牌宪法 references/design_tokens.md; 1.4.0 起总路由表在桥接文件顶部); 论文示意图高密度交付默认走 templates/figures/vendor/scibox-diagram/(开源分发版无 scibox-*, 自动降级为自写 drawio/matplotlib 模板, 见桥接文件"开源分发版注意"), 轻量快速路径用自写 drawio 模板 render_drawio_pack.py --list, 示意图配色默认走 DIAGRAM_FAMILIES 色族(与数据图表色板分离, 见 color_typology.md §2.4); 复杂多面板主图/物理场图/网络流图/TikZ 框架图走 vendor/icarus-figures/(v2.3.0, 约束见 VENDOR.md 第 6 条); huashubei 额外加载 references/huashubei_figure_pack.md
"终审论文" / "最后 6 小时检查"Stage 9进入极速终审路径, 优先查摘要定量结果、图表解释、符号一致、结论对应题问
"继续 stage N" / "看进度"恢复 statecwd/state/decision_log.json, 加载对应 stage

如果用户意图不清, Codex 直接给工作台菜单, 让用户回复 1-5


触发与首要动作

当用户提到数学建模竞赛、选题、建模、求解、灵敏度、论文、摘要、终审、$mathmodel-studio、"开始建模"、"打国赛/美赛/电工杯/亚太杯"、"APMCM"、"亚太赛"时,立即启用本 skill。

首要动作固定为:

  1. 用不超过 50 字说明已启动多竞赛 5 幕 10 步问答式流程。
  2. 先做实战入口路由;若是局部写作/终审/选题比较, 直接进入对应入口。
  3. 若要完整流程, 检查 <cwd>/state/decision_log.json 是否存在。
  4. 若存在,先读 competitioncurrent_stagemode 并恢复;若不存在,Codex 直接输出工作台菜单并一次性问 5 个启动问题。
  5. 只加载当前阶段需要的 reference,不一次性读完整资料库。

如果用户只想问概念、改一段论文或审一张图表,不启动完整五幕流程;直接完成该小任务,并说明未写入 state。


多 Runtime 入口

兼容 skills 标准的运行环境优先按 skill 目录发现本文件:

  • 用户级安装: $HOME/.agents/skills/mathmodel-studio/
  • 项目级安装: <repo>/.agents/skills/mathmodel-studio/
  • UI 元数据: agents/openai.yaml
  • 插件分发元数据: .codex-plugin/plugin.json + skills/mathmodel-studio/SKILL.md shim
  • 项目指导: AGENTS.md 仍可作为 repo / workspace 级 instructions, 但不是唯一入口

当 skill 已安装后, 用户可直接说"开始建模"或显式说"使用 $mathmodel-studio 开始建模"。

可选自带执行器(非默认流程): runtime/mathmodel_agent/ 是薄 agent runtime 原型, 用 python -m mathmodel_agent run --workspace <dir> --mock 可离线试跑; 必停点由代码强制——LLM 只能以正文 checkpoint_request: 行申请、人工经 CLI answer 子命令登记(source=user_cli), 无法自写 checkpoints。需要 skill 身份下的物理拦截时, 路径是插件身份注册 PreToolUse hook 接入 check_gate, 或提交阶段用 package_submission 校验(见"必停点协议")。详见 runtime/README.md

开发者自检入口: 留出题评测协议 evals/holdout_protocol.md + evals/run_eval.py; 反例回归 evals/rubric_regression/run_rubric_regression.py


Harness 兼容 (Claude Code / Codex)

本 skill v1.0.0 以多 runtime skills 标准为一等入口, 同时保持 harness-agnostic 设计:

harness入口文件用户交互工具状态文件
Claude CodeSKILL.md (本文件)AskUserQuestion 工具cwd/state/decision_log.json
Codex CLI / Codex appskill 目录中的 SKILL.md + 可选 AGENTS.mdmarkdown 编号列表同上 (互通)

跨 harness 互通: day 1 用 Codex 跑 stage 0-2, day 2 切回 Claude Code 接着 stage 3+, 状态完全保留。详见 references/harness_compat.md


问答式优先 (Friendly Mode)

核心原则: 用户只需回答编号问题, 不应被要求手敲 bash / python / json。

  • 离散选项 (选竞赛 / 选题 / 选模型 / verdict 决策) → 必须用问答式
  • 自由文本 (PDF 路径 / 截止时间) → 单行回复
  • 状态读写 (decision_log.json) → agent 自动完成
  • 每个 stage 的关键决策点都有 "让我决定 (推荐 X)" 兜底选项, 用户无脑选 4 也能跑通

Claude Code: 用 AskUserQuestion 工具; Codex: 用 markdown 编号列表 (最多 1-5, 含兜底)。两者语义等价, 见 references/harness_compat.md §1。

交互密度 interaction (v2.3.0): decision_log 新增正交字段 interaction,取值 "detailed"(默认)| "auto"。detailed 下必停点之外的关键自由参数(假设取舍、图表风格细节、章节侧重)也要问;auto 仅当用户明确说"自动模式 / 少问点 / 你自己定"时开启(写入 decision_log.interaction),且只减少必停点之外的细节提问密度——六个必停点永远要问。注意与 mode(fast / standard / championship)的区分:mode 管 token 档位与反馈深度,interaction 管提问密度,两者正交、不得混用、不得互相覆盖。


必停点协议 (v2.3.0)

2025 华为杯 F 题实测病根:agent 全程自写自走,设计的必停点全部未问。本节把必停点从"约定"升级为"登记 + 程序门禁"。

六个必停点——任何模式下都必须真问用户(Claude Code 用 AskUserQuestion;Codex 用编号菜单),唯一登记路径是 decision_log.checkpoints,登记条目形如 {"status": "answered", "asked_at": "<ISO>", "answer": "<用户选择摘要>", "source": "chat"}(主 agent 流程经用户问答后由 agent 写入,source 固定为 "chat";runtime 薄执行器的 trusted 写入是 CLI answer 命令,source"user_cli")。source 缺失或非 chat/user_cli 的值(model/llm/agent/auto 等)一律视为未答,check_gate.py 拦截

必停点触发时机登记键呈现方式
启动 5 问完整流程启动时一次性 5 问(竞赛/题号/队员/截止/PDF)checkpoints.kickoff_5qAskUserQuestion 或 Codex 编号菜单
审题呈现确认Stage 2 审题门四查呈现后、进入分解前checkpoints.analysis_confirm同上
选择卡拍板Stage 3 选择卡人类拍板门(先亮短名单+候选档案,用户拍板)checkpoints.card_decision同上
每问图表菜单Stage 5 每个 Qi 验证通过后、生成图表前(见 references/stage_05_subproblem_loop.mdcheckpoints.figure_menu["Q<i>"]同上
每问 verdictStage 5 每个 Qi 的 per-Qi L1 评分产出 verdict 时即问即登记该问条目(refine_partial 时明确问修哪问);聚合整体决策登记进 stages["5"] 既有字段,不复制进 qi_verdictcheckpoints.qi_verdict["Q<i>"]同上
每问选型确认Stage 5 每个 Qi 求解前(A0 步)checkpoints.per_qi_selection["Q<i>"]同上

每问选型确认的口径:本问选型与 stage 3 已拍板方案一致时只做轻量确认(一行摘要 + 编号菜单),不一致或本问无 stage 3 记录时必须出完整选择卡;该键与 card_decision 各自独立登记,不得互相顶替。

程序门禁: stage 推进前必须跑 python scripts/check_gate.py --gate <N>(N 为当前 stage,0-8;--gate N 只在阶段末尾退出条件处跑,阶段中途的人工停点用 --checkpoint <key> 只查该必停点登记、不查 scores)。exit 0 放行;exit 1 拦截并输出缺失项中文清单——与 verdict=block 同级处理:暂停 + 编号菜单,缺必停点就补问,缺评分落盘就先跑 rubric L1 自评 + score_artifact.py。门禁同时强制 scores 里存在 stage N 的合法评分记录(E 合并;stage 5 双路径:scores["5"] stage-level 或 scores["5_per_qi"] 覆盖全部 Qi,满足其一即可),L1 评分一次没落盘即拦截。没有跳过/绕过开关;旧 state 无 checkpoints 字段(schema 3.0)时判 FAIL 属预期行为,补走必停点问答即可。CLI 参数语法错误为 argparse 标准 exit 2,业务放行/拦截一律只返回 0/1。

宿主强制未启用时的口径: 本 skill 当前以 skill 身份安装,未注册插件 hook,程序门禁由 agent 在阶段末尾主动运行 check_gate.py 完成——属协议要求而非物理拦截。若需要物理拦截,路径是在插件身份下注册 PreToolUse hook(见“多 Runtime 入口”),或在提交阶段用 package_submission 校验。


路径解析协议 (任何阶段必读)

类型位置
skill 内通用skill 根目录的相对路径references/stage_05_subproblem_loop.md, templates/shared/decision_log.json
竞赛特化competitions/<comp>/... 按 decision_log.competition dispatchcompetitions/cumcm/winning_patterns.md, competitions/mcm/abstract_template.md
LaTeX 模板templates/latex/<comp>/templates/latex/cumcm/main.tex, templates/latex/mcm/main.tex
用户产物用户 cwd/ 相对路径cwd/state/, cwd/results/, cwd/figures/, cwd/paper_workspace/
state 持久化cwd/state/decision_log.json各 stage 必读必写
环境变量MATHMODEL_STATE_DIR (兼容 CUMCM_STATE_DIR) / MATHMODEL_COMPETITION 可覆盖scripts 用此变量

约定: <skill>/ = skill 安装目录, <cwd>/ = 用户 cwd, <comp>/ = 当前竞赛 (huaweibei | huashubei | cumcm | mcm | diangong | apmcm)。其中 huaweibei 是研究生赛,不能与 huashubei 华数杯互换。


Quick Start (用户首次说"开始建模")

🔴 CHECKPOINT · 启动写入前确认: 只有在用户明确要进入完整工作流时,才创建或修改 cwd/state/decision_log.json。如果用户只是咨询、润色或局部审稿,不写 state。

Codex 首屏优先加载 references/codex_practical_menu.md 的"比赛工作台菜单"。用户回复:

  • 1 → 完整 5 幕 10 步流程, 继续问竞赛/题号/队员/截止/PDF。
  • 2 → 只做 A/B/C 题比较, 进入 Stage 1。
  • 3 → 局部任务工作台 (写作/摘要/图表/终审), 按任务进 Stage 8 或 Stage 9。
  • 4 → 模型选型建议, 进入 Stage 3 选择卡, 出每问候选短名单与《选型总表》, 不进入求解
  • 5 → 读取已有 state, 恢复当前阶段。
1. 一段话介绍 (≤50 字): "启动数学建模工作流, 5 幕 10 步 + 多竞赛, 全程问答式."

2. 一次性 5 问 (Claude Code: AskUserQuestion 单条消息; Codex: 一条消息内给首屏 5 项, 其中离散项用编号菜单):
   - 竞赛 (huaweibei 研究生赛 / huashubei 华数杯 / cumcm 国赛 / mcm 美赛 / diangong 电工杯 / apmcm 亚太杯中文赛;按用户上下文选择,否则默认 cumcm)
   - 题号 (依竞赛: huaweibei A-F,且字母不固定映射题型 / huashubei A-C / cumcm A-E / mcm A-F / diangong A-B / apmcm A-C; "未公布"亦可)
   - 队员数 + 各人擅长 (建模/编程/写作)
   - 截止时间 (ISO 字符串或 "距现在 X 小时")
   - 题目 PDF 路径 ("未公布"亦可)

3. 自动初始化 (agent 自动完成, 不要让用户编辑 json):
   - 不存在 cwd/state/decision_log.json → cp <skill>/templates/shared/decision_log.json
   - 写入 decision_log.competition = <选定竞赛>
   - 已存在 → 读 current_stage 字段决定恢复点

4. 加载 competitions/<comp>/winning_patterns.md 一次 (建立基线), 后续不再读

5. 进入 Stage 0 (references/stage_00_kickoff.md), 不重复问已问过的问题

已有 state 触发 (用户中途回到 skill):

1. 读 cwd/state/decision_log.json 的 competition 与 current_stage
2. 加载对应 stage_NN.md (按需结合 competitions/<comp>/* 内容)
3. 不重复读 winning_patterns

失败兜底协议

触发条件一线处理仍失败兜底
题目 PDF 路径不存在或打不开请用户重新给路径;若题目未公布,记录为 problem_pdf="pending"用题号和已知竞赛规则进入 Stage 0,不编造题面
decision_log.json 不存在templates/shared/decision_log.json 复制并写入 5 个启动答案模板也找不到时,只在对话中维护临时状态,并提示 state 未落盘
decision_log.json 损坏或字段缺失先备份为 decision_log.bak.<timestamp>.json,再用模板补齐缺字段不能备份时暂停,展示损坏位置,请用户确认是否重建
competition 缺失或不合法用主菜单选择 huaweibei / huashubei / cumcm / 其他竞赛按上下文推断(华为杯/研究生赛→huaweibei,华数杯→huashubei),否则默认 cumcm,并在 state events 写明原因
当前 stage reference 找不到回到流程总览的五幕索引,加载相邻阶段和 rubrics.md 的通用规则暂停该阶段,说明缺失文件,不跳过关键评审
评分脚本运行失败读取报错,先检查输入 JSON、Python 环境和路径改用 rubric 手工评分,并在结果里标注 manual_fallback
LaTeX 编译失败定位首个报错,优先修模板变量、图片路径、中文编译器输出可提交的 markdown/tex 草稿,说明 PDF 未生成
token 超预算降级 mode,并只保留阶段摘要、关键数据和文件路径仍超预算时暂停长文生成,先让用户确认优先完成的章节

六个一等竞赛 × 三模式矩阵

时长 / 语言 / 模板 / 数据状态 由 competition 决定; token 预算 / 反馈深度由 mode 决定。两者正交组合

Competition时长语言LaTeX子问数 IQR数据状态
huaweibei100h (2026 通知口径, 赛前以官方通知复核)中文xelatex / ctex按当年题面empirical_local_2021_2025(30题+190篇;33篇深读: 12篇2021提名+21篇2025优秀选)
huashubei72h中文xelatex / ctex[3, 5]empirical_local_6years (6届18题+18篇优秀论文, 国一标准蒸馏)
cumcm72h中文xelatex / ctexart (自写)[3, 5]verified (33 篇论文 + 25 个案例)
mcm96hEnglishpdflatex / article[3, 6]seed v0.1
diangong72h中文xelatex / ctex[6, 8]seed v0.1
apmcm72h中文xelatex / ctex[3, 5]empirical_local_2024_2025 (赛题6份+优秀论文12篇)

华数杯专项说明 (0.7.0): huashubei 是 0.7.0 重点升级的一等竞赛, 有完整经验库 (competitions/huashubei/ 14 文件) + 专项工作流三件套 (选题决策/图表包/72h时间表), 数据基线最完整 (6 届 18 题 18 篇)。目标定位: 国家级一等奖。

ModeToken反馈层用途
fast≤ 50kL1 单次选题试跑 / sanity check
standard≤ 200kL1+L2默认主流程
championship≤ 500kL1+L2+L3+L4 + red-team提交前最后冲刺

模式自动推荐 (按距 deadline 剩余):

  • 60h: standard (最后 6h 升 championship)

  • 24-60h: standard
  • 6-24h: fast 关键阶段 + championship 终审
  • < 6h: 直接进 stage 9 (championship)

流程总览:5 幕 10 步 + 2 道质量门

对用户呈现为五幕;内部实现仍按 stage -1~9 懒加载文件组织,stage 编号不变(decision_log schema、脚本、测试全部兼容)。

步骤 (stage)干什么时长
一、备战与选题赛前兵检 (-1) → 启动 (0) → 选题 (1)模板预编译与 solver 冒烟;工作区初始化;多题对比定一题兵检 2-4h (赛前) + 1h + 2-4h
二、审题与选型审题四查 (2) → 模型选型 (3) → 假设符号 (4)边界/权利/目标/假设四查防读错题 + 图表规格冻结;短名单带候选档案比较拍板;假设/符号/术语冻结2-3h + 2-4h + 1h
三、建模求解子问循环 (5) → 稳健性 (6)每问 A-H 步求解,验证后立即写章节草稿卡(E2 write-as-you-solve);全局灵敏度/稳健性6-12h × n + 2-3h
四、论文成稿模型评价 (7) → 写作组装 (8)优缺点与推广;草稿卡组装成正文 + 摘要三遍制1-2h + 12-30h
五、终审提交终审 (9)评委模拟器 panel:资格门 + 扣分制 + 校准锚;一致性审计与打包2-6h

质量门 1(每步结束,原 L1):rubric 自评 + verdict 判定,不过不推进。质量门 2(第五幕,原 L3+L4):评委模拟器多席位 panel + 校准(L4 references/feedback_layer4_calibration.md)。跨幕回检(原 L2,references/feedback_layer2_backtrack.md)内嵌在第三、四幕末尾,定向回滚不重做整幕。

各阶段细节(reference / 反馈 / 竞赛差异点)见对应 references/stage_NN_*.md;差异速查:题号体系(huaweibei A-F 不映射题型 / huashubei A-C / cumcm A-E / mcm A-F / diangong A-B / apmcm A-C)、时长语言编译器由竞赛决定、stage 5 子问数与 per-Qi 加权聚合、stage 8 摘要类型(五段 / 1-page+Letter / 四段)。


加载协议 (节省 token 的关键)

只在进入阶段 N 时加载 references/stage_NN_*.md切勿一次性全读。

每阶段通用:

  • 每阶段开头: cwd/state/decision_log.json 必读
  • 每阶段结尾: cwd/state/decision_log.json 必写 (核心决策 + 5 维评分)
  • stage 1-9: references/rubrics.md 对应章节 (L1 评分用)

通用与跨阶段加载

  • 触发反馈时: L1 references/feedback_layer1_critic.md / L2 references/feedback_layer2_backtrack.md / L3 references/feedback_layer3_panel.md / L4 references/feedback_layer4_calibration.md; harness 适配差异 (Codex 用户必读): references/harness_compat.md
  • 任何并行派发前: references/parallel_dispatch.md; 迭代预算耗尽输出 decision_memo
  • 外部数据需求 (任何阶段): references/data_acquisition.md (数据源优先级/数据集登记 SSOT/网络安全约束/论文数据声明)
  • stage 2/8 文献需求: references/reference_skill_bridge.md (检索硬上限 ≤5 次/阶段, T1→T3 路由, 四要素核验, 期刊分级与参数溯源)
  • 图表任务: references/figure_skill_bridge.md (路由总表见其顶部); 规划用 figure-table-planner, 生成用 math-figure-generator, 终审质检用 nature-figure 的 QA 规则; 数据图 17 件 templates/figures/scripts/render_modeling_pack.py --list; 示意图 4 件 templates/figures/scripts/render_diagram_pack.py --list; drawio 可编辑模板 6 件 templates/figures/scripts/render_drawio_pack.py --list(落盘自动过 drawio_check.py 版式门禁, FAIL 即退出码 1); vendor 路由: 高密度论文示意图走 templates/figures/vendor/scibox-diagram/(4 模板, content JSON 驱动; 本分发版不含, 自动降级为自写 drawio/matplotlib 模板与 vendor/icarus-figures/, 见 references/figure_skill_bridge.md), 差异数据图型走 vendor/scibox-figure/(本分发版不含, 自动降级为自写 drawio/matplotlib 模板与 vendor/icarus-figures/, 见 references/figure_skill_bridge.md), 答辩/展示级 HTML 走 vendor/diagram-design/, 复杂多面板主图(hero panel)、物理场/动力学/网络流图、TikZ 框架图走 vendor/icarus-figures/(paperfig 48 函数 + 5 个可编译 TikZ 范例; 不启用 journal 列宽, 产物落 cwd, critique.py 与 figqa/figure_lint 双门都过; 路由细则见 figure_skill_bridge.md
  • 图表硬门: 出图后跑 scripts/figqa.py --strict (六类碰撞) + scripts/figure_lint.py (设计规则); 新图模板 templates/figures/scripts/ (tornado/优化分配/多场景/技术路线图, dispatcher render_modeling_pack.py)
  • 图表配色: references/color_typology.md + 设计令牌宪法 references/design_tokens.md + templates/figures/style/{palettes.py, mathmodel.mplstyle}; 模板脚本公共底座 templates/figures/scripts/figkit.py; 图表计划记录 palette 字段
  • 任何 stage 推进前: scripts/check_gate.py --gate <N> 门禁 (必停点 + 评分落盘, 见”必停点协议 (v2.3.0)”)
  • 数字冻结: scripts/freeze_numbers.py (freeze/check/unfreeze/list, workspace_protocol §9); 运行清单: scripts/run_manifest.py (record/verify, §10 级联失效)
  • 三赛联合工具: 题目/子问检索 scripts/retrieve_cases.py --competition all --level both; Stage 知识包 scripts/build_stage_pack.py --stage 1|3|5|8|9; 动态骨架与图表计划 scripts/generate_paper_plan.py; 结果证据追踪 scripts/trace_claims.py; 增量更新与版本 scripts/update_knowledge.py(默认预览, 明确更新时才用 --apply); cumcm 向后兼容入口 scripts/retrieve_cumcm_cases.py(检索 competitions/cumcm/cases/index.json
  • 决策弹窗: 所有选项卡以 references/decision_ui_map.md 为唯一登记处
  • 评分重释: config/rating_contract.json dimension_interpretations 16 键, 配额不作评分依据; L1 分数落盘带 self_assessed: true

按 stage 加载表

stage额外加载
-1 赛前 (T-7~T-1)references/stage_preseason.md 跑一次兵检, 输出 state/preseason_report.json
0references/workspace_protocol.md (唯一工作区/真源 SSOT/会话恢复四步; 检测同竞赛旧工作区必须先编号菜单确认归档); 真源 md 的公式/符号/题注/编号格式规范 references/md_authoring_spec.md (PDF/docx 双链实测口径); state/skill_issues.md 台账随工作区骨架创建, 自我纠错时追加 (协议见 references/workspace_protocol.md §11); 华数杯/研究生赛各自 battle_plan_72h 作战表 (见竞赛专项加载)
1competitions/<comp>/topic_specs.json; 国赛、研究生赛和华数杯加载各自 competitions/<comp>/case_retrieval.md,由 agent 运行 scripts/build_stage_pack.py --stage 1;需要跨赛结构参考时使用 --competition all; 华数杯另加 references/huashubei_topic_decision.md 选题决策矩阵 (见竞赛专项加载)
2审题门: 边界/权利/目标/假设四查 + 审题质询员红队 (stage_02 内嵌); 建模防错查 references/modeling_norms.md 对应题型节; 义务台账 decision_log.stages.2.obligations 镜像, gate 5/8 校验 unstarted 拦截; 末尾图表规格冻结 (stage_02 内嵌小节), 登记进真源.md 图表登记表
3stage 3/5 建模通用: references/model_catalog.md (含 §12 失效边界) + references/knowledge_workflow.md,运行 Stage 知识包与子问级检索,使用路线比较、假设风险和必做验证,禁止迁移历史数值; “选择卡”人类拍板门 (stage_03 内嵌); 外源文献检索(scripts/literature_scout.py + references/literature_scout.md,stage 1/3/5 挂点、stage 3 选型期默认触发,不再以 playbook 未命中域为前提;单挂点预算 ≤2 次检索、单次 ≤5 篇,命中 24h 缓存不重复消耗配额,方法卡需过四要素核验); 研究生赛另加 competitions/huaweibei/playbooks/competitions/huaweibei/papers/domain_index.md (见竞赛专项加载); 国赛另加 competitions/cumcm/playbooks/ 五域手册 (见竞赛专项加载); 《选型总表》cwd/selection_sheet.md(人读产物,stage 3 生成初版、stage 5 每问 A0 确认后更新对应行;机器真源仍是 decision_log.stages.3.selected_per_subproblem,总表是它的渲染)
4references/stage_04_foundation.md(假设/符号/术语冻结)+ templates/shared/notation_table.md
5每问求解前先过 A0 本问选型确认(必停点,见必停点协议); per-Qi 评分跑完后调 scripts/score_artifact.py --mode aggregate_qi 聚合; 每问验证后写章节草稿卡 paper_workspace/sections/q{i}_draft.md (write-as-you-solve, 见 stage_05 E2 节); stage 8 组装时优先复用草稿卡; 图表 (stage 5/8): CUMCM/研究生赛加载各自 distilled_figures.md, 从命中案例的 figure_story 组织“结构—机制—中间状态—结果—可信边界”,基础 figure_plan 只作兜底
6references/stage_06_robustness.md(全局灵敏度/稳健性)+ templates/shared/sensitivity_table.md
7references/stage_07_evaluation.md(模型优缺点与推广)
8competitions/<comp>/{winning_patterns, phrase_bank, abstract_template, paper_skeleton}.md (各赛加件见竞赛专项加载);运行 generate_paper_plan.py 生成动态章节、图表计划和 evidence ledger; 经验校准: 先加载 config/rating_contract.json,再与 competitions/<comp>/empirical.json.scoring_policy 取交集,国赛、研究生赛、华数杯只允许可靠的摘要长度和页数校准,图表数/章节数/正文字数/词频均不得作硬阈值; CUMCM/研究生赛写作: 从命中案例读取 writing_blueprint,按“为什么—模型—中间状态—结果—验证—回答”写每问,研究生赛另按需读取 papers/manual_paper_reviews.json 的章节逻辑,只迁移结构,不复制原句; 每节成稿: references/ai_flavor_removal.md 十类自查; 重述/附录用 templates/shared/{restatement_card.md, appendix_checklist.md}; 结论核验 (stage 5/8): scripts/claim_consistency_check.py --draft <正文> --results results/ [--strict] (收敛/最优/提升 vs 结果文件状态); mcm 写作: competitions/mcm/memo_letter_guide.md (Memo/Letter 框架)
9competitions/<comp>/anti_patterns.md + rubric_overlay.json 的 panel personas;运行 trace_claims.py --strict,摘要证据链未通过则阻断终稿; 一致性 (stage 8/9): scripts/consistency_audit.py (未冻结数字/摘要结论打架/图表断链/符号脱节/版本错乱); 评委模拟器(stage_09 内嵌:资格门 → 冻结原子扣分清单 → 扣分制 + 格式乘数), 可执行入口 scripts/score_artifact.py --mode judge, panel 隔离规则见 references/feedback_layer3_panel.md; huaweibei 先核对 competitions/huaweibei/current_rules.md 日期戳; 提交终检 scripts/pdf_qa.py (页数/重复图题/匿名扫描/空白页) 并入 package_submission 流程; 提交: references/submission_checklists.md + scripts/package_submission.py (默认 dry-run, 含 gate 8 预检, 未过拒绝打包); docx 审阅件导出 scripts/export_docx.py (md 真源 → submission/ 时间戳 docx); 终审核对 state/skill_issues.md 台账

竞赛专项加载 (competition=X 时)

huashubei (华数杯):

  • stage 0 kickoff: references/huashubei_battle_plan_72h.md (72h 逐小时时间表)
  • stage 1 选题: references/huashubei_topic_decision.md (选题决策矩阵) + competitions/huashubei/topic_specs.json
  • stage 3/5 建模: competitions/huashubei/distilled_modeling.md (A/B/C 三题型分章建模范式)
  • stage 5/8 图表: references/huashubei_figure_pack.md (按题型图表代码模板)
  • stage 8 写作: competitions/huashubei/{winning_patterns, abstract_template, phrase_bank, paper_skeleton, distilled_structures, distilled_formats}.md
  • stage 8 评分: competitions/huashubei/empirical.json + rubric_overlay.json (6 维度国一标准)
  • stage 9 终审: competitions/huashubei/anti_patterns.md (32 条) + rubric_overlay 的 4 角色 panel

huaweibei (研究生赛):

  • 通用入口: references/cross_competition_distillation.md,只共享结构与方法接口
  • stage 0: references/huaweibei_battle_plan_72h.md (逐小时作战表 + h48 硬冻结[72h 基线时点, 2026 100h 赛制按表头映射转换] + 独立验收三选二), 与 huashubei 作战表同级
  • stage 1/3/5: competitions/huaweibei/topic_specs.json + competitions/huaweibei/case_retrieval.md + distilled_modeling.md + scripts/retrieve_cases.py --competition huaweibei
  • stage 1/3: competitions/huaweibei/playbooks/(按题目域命中 README 索引后读对应域文件; playbook 动作清单是 stage 3 候选生成输入之一, 不替代缺口驱动选型)
  • stage 3: competitions/huaweibei/papers/domain_index.md(33 篇深读域级索引, 命中后按 paper_id 定向读 papers/manual_paper_reviews.json
  • stage 5/8 图表: competitions/huaweibei/distilled_figures.md + 命中案例 figure_story
  • stage 8 写作: competitions/huaweibei/{winning_patterns, abstract_template, phrase_bank, paper_skeleton, distilled_structures, distilled_formats, writing_voice, writing_playbook, writing_examples}.md(writing_voice 管语气/摘要定量密度/公式呈现/推导四步叙事/结果分析五步/结论三招, 为华为杯写作必载件; writing_playbook 按 5 题型给公式-推导-结果分析差异化重点; writing_examples 为正反例对照库, 证据基础 33 篇深读);需要提名(2021)/优秀论文(2025)范式时按证据 ID 读取 papers/manual_paper_reviews.json
  • stage 8 评分: 只使用 empirical.json 中摘要长度和页数的完整覆盖分位
  • stage 9 终审: anti_patterns.md + rubric_overlay.json 的五角色 panel,强制检查竞赛键、奖项身份和来源边界

cumcm (国赛):

  • stage 1/3/5: competitions/cumcm/topic_specs.json + competitions/cumcm/case_retrieval.md + distilled_modeling.md(九类内容范式)+ scripts/build_stage_pack.py --competition cumcm
  • stage 1/3: competitions/cumcm/playbooks/(五域:优化决策/几何物理/机器学习数据分析/仿真路径/概率统计;先读 README 域→文件映射再加载域文件; 动作清单是 stage 3 候选生成输入之一, 不替代缺口驱动选型; 证据基础 25 篇获奖论文方法链, 全部 source_checked)
  • stage 5/8 图表: competitions/cumcm/distilled_figures.md + 命中案例图表叙事
  • stage 8 写作: competitions/cumcm/{winning_patterns, abstract_template, phrase_bank, paper_skeleton, distilled_structures, distilled_formats}.md
  • stage 9 终审: competitions/cumcm/anti_patterns.md + rubric_overlay.json panel

收敛准则 (统一定义, 三处一致)

🔴 CHECKPOINT · verdict 决策: blockcarryover、从 stage 5 进入 stage 6、从 stage 8 进入终稿审核前,都必须给用户编号选择;不要擅自越过高风险结论。任何 stage 推进前必须跑 scripts/check_gate.py --gate <N>,FAIL 时按 verdict=block 同级处理(见"必停点协议")。

verdict 优先级 (从高到低):

verdict触发行为
blockissues 含 ≥1 high-severity暂停 skill, 用户介入
pass_earlyraw_min ≥ 9 AND weighted_mean ≥ 9iter-1 早退
passraw_min ≥ 7 AND weighted_mean ≥ 8进下一阶段
pass_with_review (stage 5)任 Qi mark_for_review 但加权阈值满足进 stage 6, L2 必读 review_qis
refine其他section-patch 精修, iter+=1 (cap 3)
refine_partial (stage 5)任 Qi.min < 7, 其他 Qi 已 pass仅 refine 该 Qi, 不动其他
carryoveriter == 3 仍 refine进下一阶段, 标记由 L2 处理

weighted_mean = Σ(s_i × w_i) / Σ(w_i), 权重来自 config/dim_weights.json[<comp>][<task_type>] (clamp [0.7, 1.5]); task_type=default 全 1.0 等价老逻辑。

迭代预算 (0.7.4): 每阶段 refine ≤3 轮 (上表); 全程跨阶段返工与并行任务重派设总预算, 耗尽后不许静默继续——必须输出结构化 decision_memo (blocked_item / tried / best_so_far / options / recommendation) 交用户编号决策, 模板见 references/parallel_dispatch.md。验收结论三选二独立来源规则见 references/workspace_protocol.md §7 (产出方自评一律视为待验证)。

此定义在 references/feedback_layer1_critic.md / rubrics.md / scripts/score_artifact.py 三处必须完全一致


状态持久化

Shortened here. Read the whole file on GitHub.

Signals

GitHub stars
23
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
mathmodel-studio
Source
github.com/yan315598-design/mathmodel-studio