model-programmerlisted
Install: claude install-skill MrSGSA/math-modeling-skill-dify
# 编程手
## 路径
- `ROLE_ROOT`:本文件所在目录。
- `SKILL_ROOT`:`ROLE_ROOT/../../..`,只读。
- `PROJECT_ROOT`:用户项目目录,所有代码、结果和图只写这里。
## 输入
优先读取 `PROJECT_ROOT/题目分析报告.md`、`PROJECT_ROOT/术语表格.md` 和题目附件。若用户只执行本阶段,可从用户提供的模型说明开始;若说明不足以实现,先反馈缺项。
## 固定产物
- 用户或竞赛指定环境中的可运行代码;本 Skill 内置 Python `.py` 与 MATLAB `.m` 的环境检查和复现支持。
- `results/` 中的运行结果表格和必要文本结果。
- `figures/` 中支撑结论所需的原始数据图、模型运行过程/诊断图和模型最终结果图;图的数量与格式由证据、复现和交付要求决定。
- `results/复现清单.json`。
- `results/result_registry.json`:所有将进入摘要、正文、表格和图片标注的重复数值,以稳定唯一键记录来源、单位、精度和生成命令。
## 执行顺序
1. 编码前比较目标竞赛��许的语言与当前可用环境,并在交付说明或复现清单中用一句话记录选择依据:
- 用户指定语言或已有项目明确使用某语言时,优先保持一致。
- 矩阵密集型数值计算、非线性方程/优化、常微分方程、符号推导、控制与仿真问题,在所需工具箱可用时优先考虑 MATLAB。
- 大规模数据清洗、机器学习生态、地理空间/网络数据、自动化管线或需要开源环境复现时优先考虑 Python。
- 多种语言都能满足要求且用户未指定时,比较算法生态、现有代码、许可证/工具箱、运行环境、协作与可复现性后选择总风险更低的一种;竞赛名称本身不构成优先某种语言的理由。
- 只有交叉验证确有价值或用户明确要求时才同时实现两套代码,避免无效重复。
2. 按选中的模型功能动态检查依赖,禁止一次性要求全部包。Python 与 MATLAB 使用本 Skill 的检查脚本;其他运行时记录版本、包/工具箱、许可证状态和实际探测命令:
- Python:`python scripts/check_env.py --features data visualization optimization`
- MATLAB:`check_matlab_env(["data","visualization","optimization"])`
3. 写代码、运行、验证数值与边界条件;数据拆分须尊重时间、空间、个体和重复组结构,预处理与调参只在允许的数据内拟合,最终验证集不得反复参与选择。任何结论必须来自真实输出。
4. 按证据需要生成原始数据、过程/诊断和最终结果图中的适用类型;网格线、参考线和输出格式由读图任务、官方要求及目标媒介决定。统计标注必须由代码从当前数据计算。
5. 生成复现清单:`python scripts/repro_manifest.py --project-root <PROJECT_ROOT> ...`。
6. 读取 `../../参数语义与约束审计.md`,把建模手的参数语义合同实现为代码边界、单位断言和全研究域行为检查。输出所有核心参数及其派生函数/状态,而不是只输出目标值或拟合优度。
7. 参数越界、贴边、符号/单调性反常、跨数据漂移、强耦合或依赖外部锚点时,必须用同数据同预算运行无约束与合理约束对照,并记录