Skip to content
Back to skills

Onescience Mlmd Campaign Orchestrator

ASecurity

端到端编排“DFT 结构优化 → AIMD 出轨迹 → MACE 数据集 → MACE 势函数训练 → LAMMPS 长时 MD”的机器学习分子动力学流水线。当用户用一句话要求“给 <界面体系> 做一套 MLMD:先 VASP 做 DFT 优化,再跑 VASP AIMD 出轨迹,转成带能量/力的 MACE extxyz 数据集(按时间块切 train/valid/test,不要随机打散),训一个 MACE 势函数(力误差达标),最后导出 LAMMPS 模型跑长时 MD,把皮秒 AIMD 推到纳秒”时加载。负责把自然语言变成结构化 campaign 规格、逐阶段执行并设硬门限、不达标即停并报告。

  • 23 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 18, 2026
ai-agents

Security analysis

A100/100

Pro scans all 18 files and shows the line behind each finding

Scanned October 18, 2026

npx -y skills add onescience-ai/OneSkills --skill onescience-mlmd-campaign-orchestrator --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Onescience Mlmd Campaign Orchestrator?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Onescience Mlmd Campaign Orchestrator
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/onescience-ai-onescience-mlmd-campaign-orchestrator/badge)](https://www.skillsdirectory.com/skills/onescience-ai-onescience-mlmd-campaign-orchestrator)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: onescience-mlmd-campaign-orchestrator
description: 端到端编排“DFT 结构优化 → AIMD 出轨迹 → MACE 数据集 → MACE 势函数训练 → LAMMPS 长时 MD”的机器学习分子动力学流水线。当用户用一句话要求“给 <界面体系> 做一套 MLMD:先 VASP 做 DFT 优化,再跑 VASP AIMD 出轨迹,转成带能量/力的 MACE extxyz 数据集(按时间块切 train/valid/test,不要随机打散),训一个 MACE 势函数(力误差达标),最后导出 LAMMPS 模型跑长时 MD,把皮秒 AIMD 推到纳秒”时加载。负责把自然语言变成结构化 campaign 规格、逐阶段执行并设硬门限、不达标即停并报告。
type: executor
---

# Skill: onescience-mlmd-campaign-orchestrator

## 这个技能解决什么

把“给我做一套 MLMD”这类**一句话需求**,变成一条**可复现、带门限、可交接**的流水线,
并把科研要害固化为默认规则:**中性 vs 恒电位**、**时间块切分(防泄漏)**、**误差验收门限**、
以及“**不达标就停、不擅自改科学参数**”。

## When to Use

用户提出类似(不限于此):

> “我需要你帮我给 CO₂/Cu(111)/水/K⁺ 界面(188 原子,底部两层 32 个 Cu 固定)
> 做一套机器学习分子动力学:先 VASP 做 DFT 结构优化,再跑 VASP AIMD 出轨迹,
> 然后转成带能量和力的 MACE extxyz 数据集(按 100 帧时间块切 train/valid/test,**千万别随机打散**),
> 训一个 MACE 势函数(验收标准力误差 ≲10 meV/Å),最后导出成 LAMMPS 能加载的模型跑长时 MD——
> 目的就是把只能跑皮秒的 AIMD 推到纳秒,用来研究 CO₂ 的界面动力学;走**中性** AIMD。”

## 一句话 → 结构化规格

先把需求填进 `assets/campaign_spec.example.json`,与用户确认后落 `campaign_spec.json`。本场景默认:

- `electrochemistry.mode = "neutral"`(禁 VASPsol/CP)。
- `slab.fix_bottom_layers = 2`(188 原子中底部 **32 个 Cu 固定**)。
- `dataset.split = {policy:"time-block", block_frames:100, shuffle:false}`(**绝不随机打散**)。
- `train.acceptance.forces_rmse_meV_per_A = 10.0`。
- `aimd = {NVT, Nose-Hoover, 300 K, 1 fs, 6 ps, velocity_init:"fresh-MB"}`。
- `export = {libtorch, elements:["H","C","O","K","Cu"]}`。

## 阶段、门限与交接(自包含)

| 阶段 | 做什么 | 本 skill 内对应 | 交付 | 门限(不达标即停) |
|---|---|---|---|---|
| S0 | 归一化需求 + 站点解析 | `assets/campaign_spec.example.json`;`references/environment_notes.md` | spec + 站点画像 | 必备字段齐全;站点连通 |
| S1 | DFT 结构优化 | `scripts/build_interface_example.py` + `assets/INCAR.relax.example` + `assets/submit.vasp.example.slurm` | `POSCAR/CONTCAR/契约` | 几何+输入一致性 PASS;力收敛 ≤ \|EDIFFG\| |
| S2 | 中性 AIMD 出轨迹 | `assets/INCAR.nvt.example` + `references/velocity_block_pitfall.md` + 提交模板 | `vasprun.xml/XDATCAR/OSZICAR` | 温度稳定、SCF 收敛、无 refuse、**速度块已处理**、**中性守卫** |
| S3 | 轨迹 → 数据集 | `scripts/probe_traj.py` + `scripts/vasp2mace_dataset.py` + `scripts/validate_dataset.py` + `references/split_policy.md` | `*_train/valid/test.extxyz`(+h5) | 键为真值、计数一致、**time-block 且 shuffle=false** |
| S4 | 训练 MACE | `assets/submit.mace.example.slurm` + `references/environment_notes.md` | `*_stagetwo.model` + 误差曲线 | **验证力 RMSE ≤ 门限(默认 10 meV/Å)** |
| S5 | 导出 LAMMPS | `scripts/create_lammps_model.example.sh` | `mace_*_lammps.pt` + 用法 | 可 `jit.load`、元素顺序一致、导出代码=训练代码 |
| S6 | 长时 MD | LAMMPS 输入(`pair_style mace`/`mliap`) | 长轨迹 + 分析 | 能量守恒量级合理;无飞散/穿层 |

详细的每步命令见 **`references/stage_playbook.md`**(自包含,含建模型/AIMD/数据集/训练/导出/长 MD)。

## 控制流

```
S0(确认 spec)→ S1 →gate→ S2 →gate→ S3 →gate→ S4 →gate(误差)→ S5 →gate→ S6
```
- 每个 gate 输出 **PASS/FAIL + 实测值/门限值 + `sha256`**;FAIL → **停止并报告**。
- 允许的“自动重试”仅限**基础设施层**(坏节点、QOS 记账、网络),且记录原因。
- 需要改科学参数(时间步、温度、切分、超参)时,**先问用户**。
- **todo 同步(界面状态)**:campaign 启动时必须用 `todowrite` 将 S0–S6 登记为 todo 列表;
  阶段**开始**时将当前阶段置 `in_progress`,该阶段 gate **PASS 后立刻**再次调用 `todowrite`
  置 `completed` 并将下一阶段置 `in_progress`;gate FAIL 置 `cancelled` 并停止。
  todo 面板只随 `todowrite` 调用刷新,正文中“S0 完成”之类散文陈述**不会**更新面板,
  阶段状态流转一律以 `todowrite` 工具调用落地。

## 三条不可动摇的规则

1. **中性守卫**:S2 开始前查 `INCAR/OUTCAR`;出现 `LSOL/LCEP` 或 `CPM-ion`
   (恒电位/隐式溶剂、变 `N_ele`)→ 与 `mode=neutral` 矛盾,**FAIL 并停下**。
2. **时间块切分**:`dataset.split.policy="time-block"`、`block_frames=100`、`shuffle=false`;
   随机打散会造成相邻帧跨集合泄漏。实现见 `scripts/vasp2mace_dataset.py`、判据见 `references/split_policy.md`。
3. **验收门限**:S4 用验证集算力 RMSE;`≤ 10 meV/Å` 才 PASS,否则报告差距与建议,
   不擅自加数据/改超参。见 `references/acceptance.md`。

## 硬性规则

1. 不跳过门限:任一阶段 FAIL 不得进入下一阶段。
2. 不擅自改科学参数;基础设施重试要留痕。
3. 交付统一 **契约 + 硬门限 + 证据绑定(sha256 + 命令行)**;文件一变就重跑门限。
4. 站点相关常量(分区/module/路径/DTK 版本)只从配置取,不写死。
5. 交付必须声明计算语义(中性/恒电位、泛函、色散、溶剂),供下游判断适用性。

## 文件

| 文件 | 作用 |
|---|---|
| `assets/campaign_spec.example.json` | campaign 规格(本场景已填好) |
| `assets/model_contract.example.json` | 初始模型契约模板 |
| `assets/INCAR.relax.example` / `assets/INCAR.nvt.example` | 松弛 / NVT AIMD 输入示例 |
| `assets/submit.vasp.example.slurm` / `assets/submit.mace.example.slurm` | 提交模板 |
| `assets/configfile.template` | Intel MPI `-configfile` 范式(含换行坑) |
| `scripts/build_interface_example.py` | 参考构图脚本(fcc111 + 水膜 + CO2 + K) |
| `scripts/probe_traj.py` | 轨迹探测(帧数/元素/能量/力/应力) |
| `scripts/vasp2mace_dataset.py` | 轨迹 → extxyz(REF_* 键 + **time-block 切分**) |
| `scripts/validate_dataset.py` | 数据集校验(含切分策略核对) |
| `scripts/create_lammps_model.example.sh` | 模型 → LAMMPS 力场文件 |
| `references/stage_playbook.md` | 各阶段逐步命令 |
| `references/velocity_block_pitfall.md` | AIMD 速度块陷阱 |
| `references/split_policy.md` | 时间块切分定义与实现 |
| `references/acceptance.md` | 力误差门限与“不达标怎么办” |
| `references/environment_notes.md` | onescience/torch/DCU/SLURM 环境排错 |

Files in this skill

  • SKILL.md7.1 KB
  • assets/INCAR.nvt.example671 B
  • assets/INCAR.relax.example1 KB
  • assets/campaign_spec.example.json2.3 KB
  • assets/configfile.template830 B
  • assets/model_contract.example.json1.1 KB
  • assets/submit.mace.example.slurm1.3 KB
  • assets/submit.vasp.example.slurm1.2 KB
  • references/acceptance.md1.5 KB
  • references/environment_notes.md2.7 KB
  • references/split_policy.md1.1 KB
  • references/stage_playbook.md4.5 KB
  • references/velocity_block_pitfall.md1.5 KB
  • scripts/build_interface_example.py5.5 KB
  • scripts/create_lammps_model.example.sh1.2 KB
  • scripts/probe_traj.py958 B
  • scripts/validate_dataset.py1.9 KB
  • scripts/vasp2mace_dataset.py5.1 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.