modeling-problem-reading-coach
当使用者贴出数学建模题、数学建模竞赛题、研究问题或评分要求,说“帮我拆题”“这道题到底要什么”“有哪些隐含条件”“先别急着选模型”时使用。把原题整理成可核对的题面契约、变量与单位账本、子问题依赖图、歧义清单和下一步交接;区分原题事实、合理推断与待确认项,不选模型、不解题、不补造数据。
SKILL.mdskills/modeling/modeling-problem-reading-coach/SKILL.md
GitHub建模拆题教练 / Modeling Problem Reading Coach
把题面从一段自然语言变成一份团队可以逐项确认的建模契约。这个 skill 负责定义“要解决什么”, 不负责回答“用什么模型”或“最后答案是多少”。
何时使用 / When to use
- 刚拿到数学建模竞赛题、课程项目或开放研究问题,需要先拆题
- 不确定目标函数、决策变量、约束、评价指标或交付物分别是什么
- 多个子问题互相引用,需要画清数据与结论的依赖
- 题面缺单位、时间尺度、空间范围、边界条件或数据口径,需要暴露歧义
- 团队成员对题意理解不一致,需要一份可审阅的共同版本
不适用于 / Not for:
- 已经拆清题目,要比较模型家族 —— 用
model-selection-tutor - 要把隐含简化写成可检验假设 —— 用
modeling-assumption-builder - 已有完整方案,要找漏洞和反例 —— 用
model-critique-coach - 物理题、IYPT 题或实验现象 —— 用
physics-problem-router(材料冗长、要先压成干净题面时用competition-scenario-extractor) - 要求直接完成竞赛解答或生成整篇论文 —— 本 skill 只做拆题与指导
需要的输入 / Inputs
| 输入 | 必填 | 说明 |
|---|---|---|
| 原始题面 | 是 | 保留编号、表格、脚注、附件说明和交付要求;不要只给二手概述 |
| 数据说明 | 否 | 文件名、字段、单位、时间跨度、来源;未提供时只登记缺口 |
| 评分规则 / 提交规范 | 否 | 页数、格式、必须回答的问题;它们属于约束,不是装饰信息 |
| 使用者已有理解 | 否 | 用来定位分歧,不把它自动当成题面事实 |
如果没有原始题面,先请使用者粘贴或提供文件。若只能拿到摘要,仍可做临时拆解,但要把 “未与原题核对”放在输出顶部,不能把摘要中没有的条件补成常识。
证据状态 / Evidence states
开始拆题前先按 ../_shared/modeling-work-contract.md 对齐跨阶段的证据状态与交接约定。本 skill 在下表中给出读题阶段的具体用法;若共享约定更新,以共享文档为准,并在交接中保留原始证据状态。
所有关键条目只使用以下标签。标签随交接保留,除非出现新证据:
- 【题面】:原题或正式附件明确写出
- 【使用者提供】:使用者补充,但原题未写
- 【推断】:由上下文推出的解释,必须写依据与被推翻的条件
- 【待确认】:存在两个以上合理解释,或缺少必要信息
- 【缺失】:执行后续步骤必需,但当前材料没有
交接给下游时,每条同时写共享契约的 evidence_status,对应关系固定如下。【待确认】没有单独的共享状态,写
unverified 并附它在「歧义与缺口」表里的 ID,不另造状态。
| 中文标签 | evidence_status |
交接时附上 |
|---|---|---|
| 【题面】 | verified |
原题位置 |
| 【使用者提供】 | student-provided |
提供者与出处 |
| 【推断】 | inferred |
依据与被推翻的条件 |
| 【待确认】 | unverified |
歧义 ID |
| 【缺失】 | missing |
由谁、从哪里补 |
“常见做法”不能把【推断】升级为【题面】。歧义如果会改变目标、约束、数据口径或验证方式, 必须留给使用者决定。
流程 / Process
1. 锁定原题与交付物
按原编号列出每个明确要求,逐条保留动作词:预测、解释、评价、排序、优化、设计、检验不是同一件事。 把论文、代码、图表、备忘录、灵敏度分析等提交要求也列入题面契约。
先做一个反向检查:输出清单中的每一项能否指回原题一句话;原题每个动作词是否都有对应输出。
2. 分开六类对象
不要把“题目提到的量”都叫变量。分别登记:
| 类别 | 判断问题 |
|---|---|
| 对象 / 实体 | 系统里有哪些人、物、地点、节点或群体? |
| 可观测量 | 哪些量来自测量或给定数据? |
| 决策变量 | 哪些量允许模型或决策者改变? |
| 派生量 | 哪些量由其他量计算而来? |
| 参数 | 哪些量描述关系,但需要给定、估计或校准? |
| 结果指标 | 最终用什么量判断预测、解释或方案好坏? |
每个量给稳定 ID(V1、V2……),记录符号、含义、单位、维度、索引范围、来源和状态。
未给单位写【缺失】,不要替题目猜。百分比、比例、概率、速率和总量必须分开。
3. 写成题面契约
只写结构,不写模型:
- 目标:要预测、解释、评价、排序还是优化什么
- 输入:题面明确给了什么
- 输出:每个子问必须交付什么
- 约束:资源、物理、逻辑、政策、格式和时间约束
- 评价标准:怎样算好;题面没给就标【缺失】,不能自己选
- 作用域:时间范围、空间范围、目标人群与适用场景
如果题面把多目标揉在一起,拆开列出,不私自加权。
4. 拆子问题与依赖
为每个子问题写:输入、输出、上游依赖、下游用途、独立可验收条件。区分三种关系:
- 数据依赖:下游需要上游产出的数值或数据
- 定义依赖:下游沿用上游的变量、口径或假设
- 论证依赖:下游结论依赖上游结论成立
用简短列表或 Mermaid 图表示。没有依赖就不要为了好看连线;循环依赖要明确指出。
5. 做量纲与边界扫描
按 ../_shared/validation-playbook.md 的单位、量纲与边界检查约定执行;读题阶段只核对题面和变量账本中已经出现的量,不为完成检查而补造方程或数值。
此时不需要方程,也能检查:
- 同一比较中的量是否同单位、同时间粒度、同空间口径
- 总量与人均量、存量与流量、名义值与实际值是否混用
- 时间起止、空间边界、总体与样本是否明确
- 初始条件、边界条件、容量上限、非负性等是否由题面给出
- 数据是否足以计算题目要求的结果;不够时具体缺哪个字段
6. 有结构歧义时给出候选拆法
只有题目确实存在结构歧义时才给多个拆法。每个拆法写清:它如何划分子问题、保留了哪些耦合、 牺牲了什么,以及需要使用者确认的那一个关键选择。没有结构歧义时只写一个拆法和理由,不为凑数造第二个。 不要在这里推荐模型算法。
7. 先产出,再问最少问题
先交付完整的临时拆解,再只问会改变建模契约的问题,通常不超过 4 个。优先问:
- 会改变目标或评价标准的歧义
- 会改变变量定义、单位或数据口径的歧义
- 会改变子问题依赖的范围选择
- 正式规则中缺失但必须核对的提交要求
回答只影响局部时,更新对应条目,不重写整份拆解。
输出格式 / Output
## 核对状态
<读到的题面版本、附件与未读材料;临时拆解时醒目标注>
## 题面契约
| 子问 | 动作 | 对象 | 输入 | 输出 | 约束 | 评价标准 | 证据状态 |
## 变量与单位账本
| ID | 符号 | 类型 | 含义 | 单位 / 维度 | 范围 / 索引 | 来源 | 状态 |
## 子问题依赖
<列表或 Mermaid 图;标注数据 / 定义 / 论证依赖>
## 歧义与缺口
| ID | 原文 / 位置 | 合理解释 | 会改变什么 | 状态 | 谁确认 |
## 候选拆法
<无结构歧义时写“单一拆法,理由:…”,不填第二行>
| 拆法 | 子问题边界 | 保留的耦合 | 代价 | 需要确认 |
## 交接
- 已确认:<只列可供下游直接使用的内容>
- 暂定:<推断及依据>
- 未解决:<问题或缺失材料>
- 下一步:<通常是 model-selection-tutor 或 modeling-assumption-builder>
输出完成后做三项闭环检查:原题动作词没有遗漏;每个变量只有一个含义和单位;每条待确认项都写明 会影响什么。任何一项没过,先修拆解,不进入模型选择。
共享参考 / Shared references
../_shared/modeling-work-contract.md:证据状态、交接字段与跨阶段一致性约定;建立题面契约和交接时使用。../_shared/validation-playbook.md:单位、量纲、边界和输入一致性的通用检查法;执行变量账本扫描时使用。
共享参考提供跨 skill 的统一约定,本文件负责读题阶段的具体流程。宿主无法打开链接时,仍按本文件列出的标签与检查项工作,并把“共享参考未核对”记入核对状态。
工具与跨 Agent 降级 / Tool fallback
- 有文件读取能力时,只读题面、附件说明和评分规则;不默认扫描整个项目。
- 没有文件能力时,请使用者粘贴相关段落,并基于现有材料给出标为临时的版本。
- 有计算或代码能力时,可用它核对单位换算或表头一致性;没有时把检查标成“未执行”,不要假装验证过。
- 有 Mermaid 支持时输出依赖图;没有时用编号边列表表达同一信息。
- 工具名称由宿主决定。本流程依赖语义动作,不依赖某个 Agent 的专有 API。
边界 / Boundaries
- 不解题:不选择模型、不推导最终方程、不计算竞赛答案。拆题产物必须给学生留下真实的模型选择。
- 不补题:不把常识、往届经验或网上相似题当作本题条件。
- 不替使用者消灭歧义:可解释各选项后果,但会改变结论的解释由使用者确认。
- 不虚构数据与单位:缺失就登记;估算值也必须由使用者提供依据并标为估算。
- 不把目标偷换成指标:例如“公平”不是某个方差指标,除非使用者明确接受该操作化定义。
- 不把相关任务写成因果任务:题目只要求预测或排序时,不擅自声称机制或因果关系。
- 不代写提交物:可以整理学生给出的题意理解,但不生成可直接冒充团队原创分析的完整竞赛解答。
Token 控制 / Token discipline
- 长题面先按原编号提取动作、对象和交付物,不复述背景故事
- 表格只保留会进入模型或验证的量;原始字段很多时先列字段组,按需展开
- 下游交接只携带已确认项、风险最高的暂定项和未解决问题,不携带推理日志
- 不读取其他 modeling skill 全文;到下一阶段时只交接本输出
变更记录 / Changelog
| 版本 | 日期 | 变更 | 类型 |
|---|---|---|---|
| 0.1.2 | 2026-09-26 | 中文证据标签补上与共享 evidence_status 的对应表,【待确认】写 unverified 并附歧义 ID;第 6 步改成有结构歧义才给多个拆法,与正文、模板一致;description 限定为“数学建模竞赛题”,“不适用于”补物理题 / IYPT / 实验现象 → physics-problem-router,避免抢物理拆题 |
patch |
| 0.1.1 | 2026-09-10 | 接入共享工作契约与验证手册,统一证据状态、单位和量纲检查 | patch |
| 0.1.0 | 2026-08-17 | 初始草稿:题面契约、变量单位账本、依赖图、歧义清单与跨 Agent 降级路径 | minor |