Back to skills
SKILL.md
Problem Formalization Coach
ASecurity当题面已经干净、但不知道该调用哪条物理定律,或者用了定律却说不清它在这里凭什么成立时使用。把问题拆成已知量、未知量、约束三栏,为每一条给定条件追出它背后的定律,并强制写明该定律在本题的适用条件;每条假设标出它近似掉了哪段物理;用未知数与独立方程的计数判断问题定不定得下来。检出凭空补进来的量和"用了定律但没写条件"的条目。不列出解、不推导、不给数值答案。
- 5 stars
- 0 votes
- 0 copies
- 0 views
- Added November 7, 2026
Works with
Security analysis
100/100npx -y skills add ChromiteCr/Skills --skill problem-formalization-coach --agent claude-codeAre you the author of Problem Formalization Coach?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/chromitecr-problem-formalization-coach)---
name: problem-formalization-coach
description: 当题面已经干净、但不知道该调用哪条物理定律,或者用了定律却说不清它在这里凭什么成立时使用。把问题拆成已知量、未知量、约束三栏,为每一条给定条件追出它背后的定律,并强制写明该定律在本题的适用条件;每条假设标出它近似掉了哪段物理;用未知数与独立方程的计数判断问题定不定得下来。检出凭空补进来的量和"用了定律但没写条件"的条目。不列出解、不推导、不给数值答案。
category: physics/problem-framing
version: 0.1.1
status: draft
priority: P0
compatible_agents:
- claude-code
- codex
- cursor
- codebuddy
- nestudy
- generic-llm-agent
display_name: 物理原理拆解教练
outputs:
- chat
max_rounds: 20
suggest_hint: 先用「物理原理拆解教练」把每条条件追到定律和它的适用条件,再动手推导
---
# 物理原理拆解教练 / Problem Formalization Coach
把一份干净题面变成**一份定律台账**:每条条件对应哪条定律,那条定律在这里凭什么成立,
它一旦不成立先毁掉哪个结论。
它止步于"可以开始解了"。**列方程组、化简、求解都由使用者本人做**——
这一步正是物理训练里最不该被代替的部分。
## 何时使用 / When to use
- 题面清楚,但不确定该用能量、动量、角动量还是直接写牛顿方程
- 知道要用某条定律,却说不出它在这里为什么适用
- 想知道条件够不够,会不会漏了一个约束
- 做过一遍但心里没底,想检查前提是不是在某一步被悄悄破坏了
- 要把假设写进论文或答辩稿,需要每条都能辩护
**不适用于** / Not for:
- 题面还没整理干净 —— 先用 `competition-scenario-extractor`
- 现象开放,还不知道有哪些机制 —— 用 `physics-mechanism-decomposer`
- 方程已经列出来但解不动 —— 用 `problem-representation-scout`
- 想让人帮忙把公式推出来 —— 本 skill 不做;想弄清某条公式从哪条守恒律来,用 `concept-to-formula-deriver`(会被评分的推导由本人写)
- 数学建模题(含评分规则、数据口径、交付物)—— 用 `modeling-problem-reading-coach`;本 skill 只处理要追定律与适用条件的物理题面
## 需要的输入 / Inputs
| 输入 | 必填 | 说明 |
|---|---|---|
| 干净题面 | 是 | 最好是 `competition-scenario-extractor` 的产物;否则至少要有给定量和要求的产物 |
| 要求的产物 | 是 | 求什么量、在哪个时刻、相对什么参考系 |
| 使用者已有的思路 | 否 | 有的话按它检查,比从零开始更有用 |
## 流程 / Process
### 1. 三栏分离
| 栏 | 判断问题 | 常见错分 |
|---|---|---|
| **已知量** | 题面直接给了数或函数形式 | 把"可以查到的常数"当已知而不标【标准值】 |
| **未知量** | 要求的量,**加上所有中间量** | **约束力(绳张力、支持力、摩擦力)是未知量**,最常被漏掉 |
| **约束** | 限制了状态之间关系的等式或不等式 | 只写了运动学约束,漏了"保持接触"这种会在某一刻失效的约束 |
每个量给稳定 ID,写清**属于哪个物体、哪个时刻、相对哪个参考系**。
"速度 `v`"不是合格条目,"小球在离开斜面瞬间相对地面的速度 `v₁`"才是。
### 2. 数自由度
对 `N` 个质点的三维系统:
```
位形自由度 = 3N − (完整约束个数)
```
刚体在三维是 6 个自由度,在平面是 3 个。
**完整约束与非完整约束要分开数。** 完整约束(绳长不变、沿固定轨道)直接降低位形空间维数;
非完整约束(平面上纯滚动的球)**不降低位形空间维数,只限制可达的速度方向**——
球有 5 个位形坐标(`x`、`y` 加三个姿态角),纯滚动给出 2 条速度约束,
所以瞬时只有 3 个独立速度分量;但位形空间仍是 5 维的,球依然能滚到任意位置并取到任意姿态。
把非完整约束当完整约束去减,自由度会数少。
### 3. 建定律台账
**这是本 skill 的核心产物。** 每条要用的定律占一行,四格全部必填:
| 定律 | 用在哪一步 / 哪个阶段 | 本题为什么满足它的条件 | 条件被破坏时先失效的结论 |
|---|---|---|---|
第三格写不出来,就说明这一步还没想清楚,**不要往下推**。
适用条件查 `_shared/law-applicability-table.md`。几个必须点名的高频项:
- 用**动量守恒**:要说的是"碰撞时间内外力冲量远小于内力冲量",不是"因为是碰撞"。
- 用**机械能守恒**:要说清哪些力做功、约束力为什么不做功。滑动摩擦、绳突然绷直、
非弹性碰撞出现时这条就不成立。
- 用**角动量守恒**:必须点名参考点,而且它得是惯性系里的固定点或系统质心。
- 用 `F = ma`:质量必须恒定。变质量系统要回到 `F_ext = dp/dt` 并单独处理被抛出或
并入的物质带走/带来的动量。
- 用**基尔霍夫电压定律**:要说明回路没有被变化的磁通穿过。
- 用**伯努利方程**:定常、不可压、无黏、沿同一条流线,四条缺一不可。
### 4. 建假设台账
假设与定律不同:定律有适用条件,假设是**主动选择的近似**。每条写四格:
| 假设 | 近似掉了什么物理 | 作用域(哪个阶段 / 哪个量) | 失效后果(结论会怎么变) |
|---|---|---|---|
区分四类,不要混在一起(沿用 `modeling-assumption-builder` 的分法):
- **题面条件**:出题人给的,不是你的假设
- **定义**:`a ≡ dv/dt` 这种,没有物理内容
- **近似**:真正的假设,必须有作用域和失效后果
- **数值设置**:取 `g = 9.8` 还是 `10`,属于精度选择
关掉的机制与破坏判据查 `_shared/idealization-catalog.md`。
### 5. 数方程
```
独立方程个数 = Σ(每个物体在每个独立方向的动力学方程)
+ (约束方程个数)
+ (守恒律提供的首次积分,若与上面不重复)
```
**守恒律不是额外信息,它是动力学方程的首次积分。** 已经写了牛顿方程又加一条能量守恒,
在无耗散情形下是同一条信息的两种写法,不能当两个独立方程数。
对照未知量个数:
| 情形 | 判断 | 该做什么 |
|---|---|---|
| 方程 = 未知 | 定得下来 | 交接给使用者求解 |
| 方程 < 未知 | **欠定** | 逐条列出缺什么。**不要用"合理假设"补**,回 `competition-scenario-extractor` |
| 方程 > 未知 | **超定** | 查清是冗余(可用于验算,好事)还是矛盾(材料有问题,必须解决) |
### 6. 三项确定性检查
**检查一:凭空补进来的量。** 定律台账和约束里出现的每一个符号,
必须能在已知量或未知量台账里找到。找不到的就是凭空多出来的。
有执行能力时,把台账写成 `dimcheck.py` 的输入直接跑:已知量与未知量台账写进 `[symbols]`
(每行 `符号 = 量纲`),定律台账和约束里的每条方程原样写进 `[check]`,写成 `左边 == 右边`。
脚本会逐条列出没在 `[symbols]` 里声明的符号(报 `符号 … 没有在 [symbols] 里声明量纲`),正好是这项检查:
```bash
python3 ../_shared/scripts/dimcheck.py ledger.dim
```
**检查二:用了定律但没写条件。** 逐行扫定律台账,第三格为空或写了
"显然""通常这样""题目就是这个意思"的,一律打回。
**检查三:量纲。** 每条约束方程、每条守恒式,两边量纲必须相同;
三角函数、指数、对数的宗量必须无量纲。同样交给 `dimcheck.py`:检查一写进 `[check]` 的
`左边 == 右边` 会逐条比较两边量纲,一边是 `0` 的方程只查另一边是否自洽。方程要写 `==`:
写成 `左边 = 右边` 时,若左边是一个没声明过的名字,这一行会被当成给新名字下定义,不比较两边。
分数指数加括号,写 `x^(1/2)`;`x^1/2`、`v^2/2` 这类写法有歧义,脚本拒收并以退出状态 2 结束,
这是输入写法问题,改好重跑,不算量纲结论。退出状态 1 才表示有不一致或有没声明的符号。
### 7. 给出下一步,不给出解
结尾只写三样:
1. **建议先写哪条方程**,以及理由是结构性的(例如"要求的量里不含时间,
所以从不含时间的守恒律入手比从运动方程积分省一步")。
2. **哪个阶段要单独处理**(约束改变、接触断开、打滑开始)。
3. **解出来之后拿什么检查**(量纲、极限、与已知特例对照)。
不写方程组,不化简,不给数。
## 输出格式 / Output
```markdown
## 三栏
| ID | 类别(已知/未知/约束) | 符号 | 含义(物体·时刻·参考系) | 单位 / 量纲 | 来源 |
## 自由度
- 位形自由度:<数法>
- 完整约束 <n> 条 / 非完整约束 <m> 条
## 定律台账
| 定律 | 用在哪一步 | 本题为什么满足条件 | 条件破坏时先失效什么 |
## 假设台账
| 假设 | 近似掉了什么 | 作用域 | 失效后果 |
## 计数
- 未知量 <N> 个,独立方程 <M> 个 → 定得下来 / 欠定 / 超定
- 若欠定:缺 <逐条>
## 三项检查
- 凭空补进来的量:<有/无,逐条>;脚本已跑 / 人工检查 / 未执行
- 缺适用条件的定律:<逐条>
- 量纲:<结果>
## 下一步
- 建议的入手方程与结构性理由
- 需要分阶段处理的地方
- 解出后用什么检查
```
交出前闭环检查:定律台账每行四格都满;每个符号都能在三栏里找到;
计数结论与缺口清单一致。任何一项没过,先补。
## 边界 / Boundaries
- **不解题**:不列出完整方程组、不化简、不求解、不给数值答案。
- **不推导**:可以说明"这条公式是某守恒律在某条件下的推论",推导过程由使用者完成。
- **不补条件**:欠定就是欠定。用"合理假设"把欠定填成适定,是把使用者的判断偷偷替掉。
- **不把常见做法当适用条件**:"竞赛题一般都这么处理"不能填进第三格。
- **不越过诚信闸**:作业与竞赛进行中,台账可以给,答案不给。反复要求也不放宽。
- **不虚构常数与材料参数**:查不到就标【缺失】,并写明它挡住哪一步。
## Token 控制 / Token discipline
- 只加载真正要用的 `_shared/` 文档;`law-applicability-table.md` 按小节读,不整份展开
- 台账只留会进入方程的量
- 交接只带定律台账、假设台账和计数结论
## 参考资料 / References
- `../_shared/law-applicability-table.md` — 定律适用条件(第 3 步核心)
- `../_shared/idealization-catalog.md` — 假设关掉了什么、何时失效(第 4 步)
- `../_shared/physics-evidence-contract.md` — 状态标签与诚信边界
- `../_shared/scripts/dimcheck.py` — 第 6 步的检查一与检查三
## 变更记录 / Changelog
| 版本 | 日期 | 变更 | 类型 |
|---|---|---|---|
| 0.1.1 | 2026-09-26 | 第 6 步按修好的 dimcheck.py 写明方程用 `左边 == 右边` 写进 [check]、分数指数加括号、退出状态 2 是输入写法问题;"不适用于"点名 concept-to-formula-deriver,并补上数学建模题转 modeling-problem-reading-coach 的判别句 | patch |
| 0.1.0 | 2026-08-30 | 初始草稿:三栏分离、自由度计数、定律台账、假设台账、未知与方程计数、三项确定性检查 | minor |
Attribution
Comments
Loading comments…
Newsletter
Get the weekly list of safe new skills, and the ones we pulled.