--- name: auto-mcm description: > AutoMCM-Pro industrial-grade math modeling agent (opencode binding). Supports AP (AI-led) and Manual (human-spec-led) dual modes with mandatory GitOps checkpoints, forced self-verification of all solver code before LaTeX inclusion, and structured human cross-validation at each pipeline stage. Use for both CUMCM (Chinese) and MCM/ICM (English) competitions. --- # AutoMCM-Pro:opencode 绑定 **这是 AutoMCM-Pro 协议在 [opencode](https://github.com/sst/opencode)(`sst/opencode`, MIT 授权)上的运行时绑定(Binding),不是另一套独立协议。** 行为规范权威来源仍是 仓库根目录的 `AutoMCM_SOP.md`(工具无关,原样复用);可选探索层见 `LOS_ALAMOS_DESIGN.md`。Claude Code 绑定是 `.claude/skills/auto-mcm/SKILL.md`, DeepSeek Harness 绑定是 `.dsh/skills/auto-mcm/SKILL.md`,Codex 绑定是 `.agents/skills/auto-mcm/SKILL.md`——几份文件描述同一套流程,只是把"怎么调用 工具"换成各自 runtime 的实际工具名。完整背景见 [`OPENCODE_INTEGRATION.md`](../../../OPENCODE_INTEGRATION.md)。 --- ## 【工具映射表】—— opencode 的工具名和 Claude Code 几乎一一对应 | Claude Code | opencode 工具 | |---|---| | `Agent(description, prompt)` | `task` | | `AskUserQuestion` | `question` | | `Bash` | `bash` | | `Read` | `read` | | `Write` | `write` | | `Edit` | `edit` | | `Glob` | `glob` | | `Grep` | `grep` | | `WebSearch` | `websearch` | | `WebFetch` | `webfetch` | | `TodoWrite` | `todowrite` | | (载入其他 skill) | `skill` | 以上 12 个工具 id **全部用真实任务实测过**(不是文档推断),详见 [`OPENCODE_INTEGRATION.md`](../../../OPENCODE_INTEGRATION.md) §3。 ## 【触发时的依赖安装询问】 每个新的 OpenCode 会话首次触发本 Skill 时,先用 `question` 分别询问是否安装核心 Python 建模依赖,以及是否准备可选的 LeanGate / Lean 4。不预扫描、不静默安装; 用户同意后才调用 `bash install.sh --with-python-deps` 和/或 `--with-lean`,拒绝后 同一会话不重复询问。`opencode run` 无法等待回答时,显示问题并暂停,不得自行选择。 **⚠ 关键限制:`question` 在 `opencode run`(单次任务/headless)模式下默认权限 是 deny**——模型会尝试提问,但工具调用被权限系统挡下,退化成打印文字、没人能 回答。**【唤醒协议】Step 2a、MANUAL 模式的逐阶段确认、Checkpoint LA 的强制人类 终审,这几个环节都依赖 `question` 真正等到回复,必须用交互式的 `opencode` (TUI)或 `opencode web` 跑,不能用 `opencode run`。** 工作区初始化完成后,如果 某一段流程确定不会触发任何需要人类介入的分支,才可以考虑用 `opencode run` 做 单次调用。 `task`(子代理委派)实测发现:委派子代理访问项目工作区之外的绝对路径会触发 工作区边界限制、卡在 running 状态问不到答案;委派子代理操作工作目录内的相对 路径则正常。Los Alamos 路径 C 用 `task` 派发 Division/红队/评审子代理时, prompt 里给的路径应该是当前工作区内的相对路径,不要用跨目录的绝对路径。 ## 【运行方式】(opencode 特有) ```sh opencode # 交互式 TUI opencode run "task" # 单次任务模式 ``` Skill 发现路径是 `.opencode/skills//SKILL.md`(opencode 自己的仓库 `sst/opencode` 就用这个路径放它自己的内部 skill,`.opencode/skills/auto-mcm/` 是同一套约定)。opencode 额外还有 `.opencode/agent/*.md`(子代理人格定义, frontmatter 支持 `mode`/`tools` 白名单/黑名单)和 `.opencode/command/*.md` (slash command,支持 `` !`shell命令` `` 内联执行)两种配置文件类型,本次绑定 用不到,仅供后续想做更深度定制时参考。 --- ## 【流水线执行】 阶段定义、状态机、Checkpoint 编号(①~⑤)、质量门控(`quality_gate.py`)、 Los Alamos 探索层(路径 C)、图表风格规范(`plot_style.py`)、Andon 紧急停止 (`pipeline_manager.py andon-pull/andon-clear/andon-status`)、Go/No-Go 发射前检查 (`quality_gate.py launch-check`,final_compile 前强制)、Skunk Works 轻量模式 (`pipeline_manager.py init --skunk-works`)、Track2 的 RAND Delphi 多轮收敛 (`adjudicate.py delphi-summary`)、Kaizen 质量打磨循环 (`pipeline_manager.py kaizen-assess/kaizen-round-start/kaizen-status`)、工作日志 (`worklog.py append/tail`,单文件简体中文完整记录,唤醒协议 Step 0)、文献引用 真实性核验+共享池(`cite_check.py register/verify/list/export-bibitems`)、写作 风格打磨(`style_check.py scan`,latex_draft 固有规范非可选 addon)、官方格式 合规(`quality_gate.py anon-check`、`ai_usage_doc.py generate/cite-format/ mcm-entry`、`compile_pdf.py` 编译后页数提醒,AutoMCM_SOP.md §17)、画图前先查 领域惯例(AutoMCM_SOP.md §18)全部内容 与 Claude Code 版本一致,见 `.claude/skills/auto-mcm/SKILL.md` 对应小节(标题相同), 按上方【工具映射表】逐一替换调用方式即可——由于工具名高度对应,这份绑定的 替换规则比 dsh/Codex 都更直接:几乎是把 `Agent(` 换成 `task(`、 `AskUserQuestion` 换成 `question`,其余照搬。 `scripts/*.py` 系列命令(`pipeline_manager.py`/`quality_gate.py`/ `los_alamos/*.py`/`plot_style.py`)**完全不变**,全部通过 `bash` 调用。 --- ## 【安全规程】 `AutoMCM_SOP.md` 的 S1~S5 原样适用。 --- ## 【LeanGate:可选 Lean 形式化验证】 LeanGate 默认关闭;共享规范见 `AutoMCM_SOP.md §19`。OpenCode 用 `bash` 调用同一实现: ```bash python scripts/leangate.py doctor python scripts/leangate.py --workspace CUMCM_Workspace init --policy selected python scripts/leangate.py --workspace CUMCM_Workspace status --problem-n 1 python scripts/leangate.py --workspace CUMCM_Workspace verify --problem-n 1 python scripts/quality_gate.py formal --problem-n 1 ``` LeanGate 启用后,离开 `problem_analysis` 前必须逐问题登记适用性并执行 `leangate.py seal-assessment`;安全边界、整数可行性、守恒、不变量、递推、收敛、 求解器证书或决策关键结论必须用 `--risk-category` 标注,自动成为 mandatory。 不得直接编辑权威状态或用 reviewer 意见升级 `FORMALLY_PROVED`。输入变化后必须重新审查、 冻结和验证;Lean FAIL、UNKNOWN、STALE 或 Python FAIL 都是 NO-GO。 LeanGate 启用后的 `model_N_verify` 推进必须传入工作区内真实验证脚本: `pipeline_manager.py advance model_N_verify --verify-script CUMCM_Workspace/src/verifications/verify_*.py`。 `required` claim 还必须使用人类文件中的 `[APPROVED LeanGate ...]` 与 `[REQUIRED LeanGate ...]` 标记。