Skip to content
cccskills
FreePublished on GitHub

campaign-md-orchestration

Drive a file-first, agent-in-the-loop computational campaign via a folder + markdown tree (no DB). Use when the user opts out of the visual workflow engine.

The English summary is being prepared. Showing the original description.

Hello-QM/catgo-LRG208 stars(GitHub 208 + cccskills 0)

Run score Not tested

See how to install

Files included (24)

  • SKILL.md6.2 KB
  • references/catgo-cli.md1.8 KB
  • scripts/aggregate.py1011 B
  • scripts/archive.py1.8 KB
  • scripts/campaign_analysis.py4.3 KB
  • scripts/campaign_lib.py24.5 KB
  • scripts/campaign_lit.py3.3 KB
  • scripts/campaign_report.py1.6 KB
  • scripts/fetch_ref.py943 B
  • scripts/INDEX.md1.8 KB
  • scripts/ingest_lit.py1.3 KB
  • scripts/make_report.py880 B
  • scripts/new_campaign.py932 B
  • scripts/poll.py798 B
  • scripts/submit_calc.py1.6 KB
  • scripts/test_campaign_analysis.py3.7 KB
  • scripts/test_campaign_lib.py21.8 KB
  • scripts/test_campaign_lit.py2.0 KB
  • scripts/test_campaign_report.py1.4 KB
  • scripts/test_entrypoints.py2.7 KB
  • scripts/test_skill_structure.py1.8 KB
  • scripts/test_vasp_sanity.py9.6 KB
  • scripts/vasp_sanity.py12.5 KB
  • templates/saa_her/plan.md1009 B

SKILL.md (original)

Review the instructions the agent will receive before you install.

Campaign (md-orchestration) — agent playbook

TL;DR: Run multi-step HPC campaigns from a human-readable folder + markdown tree. You (the agent) read plan.md + STATUS.md, render inputs, submit via the reference scripts (plain ssh sbatch), update markdown, and check in at gates. No DB. Files are the source of truth.

When to use

The user chose md-orchestration over the visual workflow engine (exploratory / iterative / mixed-software / cross-cluster work). The visual DB engine still exists for fixed routines + teaching — don't use this skill for those.

Conventions

Authoring conventions (progressive md, README+INDEX pairs + keeping them current, logging interventions to LESSONS, human-readable/never-hash names, the top→stage→calc progressive plan, filling scaffold stubs) live in the catgo-campaign-conventions skill — follow it whenever you create/edit campaign markdown.

Setup gate — confirm the environment (NEVER guess)

Before submitting anything, confirm with the user and record in cluster.md: cluster identity + SSH host/account + partition/walltime/ntasks, the compute binary + load method (module/conda/full path + run command), the POTCAR root, the python env, and the remote base dir. The user may give a reference job script — local, or a path on the cluster (pull it with fetch_ref.py); CatGO adapts it instead of synthesizing the preamble. Run catgo_validate_config before the first submit. submit_calc.py refuses while cluster.md is incomplete — this is enforced in code, not just here. Never guess cluster paths.

Gates (default human-in-the-loop)

  1. Input-file gate (per submission). Before each submit_calc.py, show the user the rendered INCAR/POSCAR/KPOINTS/POTCAR/job.sb and ask to confirm. Run the script only after they confirm.
  2. Stage / decision-point checkpoint. At a stage end or a plan.md decision point, write a stage summary and ask: proceed / modify / stop.

YOLO / autopilot opt-in disables both gates. Set it only if the user says so per-run ("go as you set" / "yolo") or persistently ("always skip review"). With YOLO off and the user away, hold at the gate: keep polling running jobs but submit nothing new and cross no stage.

Plan creation — ask the user first

Before writing or finalizing plan.md, ASK the user how to create it — do not assume:

  • Brainstorm together — read literature/INDEX.md first, then ask clarifying questions ONE at a time (goal, candidate set, descriptor, funnel thresholds, reference systems), propose 2-3 stage / decision-point approaches with a recommendation, and write plan.md only after the user approves.
  • Template / direct — instantiate a template (e.g. saa_her) or generate plan.md from the user's stated intent, then let them review and edit it.

Default to asking. Skip the question only if the user already opted in ("just use the template" / "go as you set" / YOLO).

Derive the full pipeline from the TARGET OBSERVABLE — before building ANY input. Work backward from what the user wants to measure to every calc it requires, and write that into plan.md BEFORE scaffolding structures/inputs (the build order is: plan first, inputs second). Common traps:

  • Overpotential / free-energy diagram / ΔG / Gibbs / adsorption free energy ⇒ needs free energies, not raw DFT energies ⇒ follow the catgo-gibbs-pipeline skill (the per-species geo_opt → freq → gibbs pipeline, freq setup, gas-ref convention, CHE, η). Wire freq as the auto-next-step after each species' geo_opt in plan.md.
  • Reaction barriers / TS ⇒ NEB/dimer + a freq to confirm one imaginary mode.
  • Band gap / DOS / COHP ⇒ a dense-k static after relax. Confirm the full stage list with the user before building. Do NOT jump from "scope" to rendering inputs — discuss the plan (and its observables) first.

The loop + resuming

Driving the ~10-min poll loop (delegate each poll to a subagent → compact summary; verify convergence by force; auto-advance each converged species per-species, pipeline not barrier; stage checkpoints) AND resuming a campaign from disk after compaction / a new session live in the catgo-campaign-loop skill. Gates stay with the main agent.

Scripts (in scripts/, see scripts/INDEX.md)

python new_campaign.py <dir> --name "<name>" --template saa_her|blank
python fetch_ref.py   --project <dir> --ssh <alias> --remote_path <cluster .sb>
python submit_calc.py --project <dir> --calc calc/<stage>/<candidate> --ssh <alias>
python poll.py        --project <dir> --ssh <alias>

Run them as-is (gates enforced), or read scripts/campaign_lib.py and adapt for the unforeseen (mixed software / odd clusters / novel calc types).

Archiving (explicit / propose — never auto-decide)

Keep the live tree clean by moving superseded/abandoned calcs into archive/, but NEVER guess what is stale: python archive.py --project <dir> --list proposes only STATUS=FAILED calcs (it does not move anything). Funnel rejects (a DONE calc with a high E_form) are kept — the ranking/volcano/funnel need them as data. Move one only on explicit user instruction: python archive.py --project <dir> --calc calc/<stage>/<name> --reason "..." (leaves a tombstone ARCHIVED.md at the original location).

catgo CLI during a campaign

Use the existing catgo CLI for the actual chemistry — see references/catgo-cli.md. Build structures (catgo slab/supercell/reticular/ convert/inspect) and analyze results (catgo dos/band/cohp/freq). These run offline (no viewer needed). Aggregate per-calc result.md files with scripts/aggregate.py; draft reports with scripts/make_report.py; ingest literature with scripts/ingest_lit.py.

Literature -> plan -> skill

Drop papers (PDF -> MinerU md) + GitHub repos into literature/; ground plan.md in them with citations. Mine reusable recipes into literature/extracted-skills.md; promote the best into the global SKILL library.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

abinit

Free

Generate and manage ABINIT DFT calculations. Use when the user requests ABINIT, or needs DFPT phonons, GW calculations, or BSE optical spectra.

The English summary is being prepared. Showing the original description.

Hello-QM/catgo-LRG208Updated Oct 23, 2026

Use when the user asks to place an adsorbate molecule on a surface, find adsorption sites, or set up a surface+adsorbate model for DFT.

The English summary is being prepared. Showing the original description.

Hello-QM/catgo-LRG208Updated Oct 23, 2026

Use when the user asks for adsorption energy, binding energy, or wants to compare how strongly a molecule binds to a surface.

The English summary is being prepared. Showing the original description.

Hello-QM/catgo-LRG208Updated Oct 23, 2026

Use when the user asks to analyze computational results: Gibbs free energy, OER/HER/CO2RR overpotentials, adsorption energy, convergence tests, DOS/d-band analysis, or Bader charge analysis.

The English summary is being prepared. Showing the original description.

Hello-QM/catgo-LRG208Updated Oct 23, 2026

Use AmberTools antechamber for molecular force field parameterization. Generates GAFF/GAFF2 parameters and AM1-BCC or RESP charges for use in AMBER or LAMMPS classical MD simulations.

The English summary is being prepared. Showing the original description.

Hello-QM/catgo-LRG208Updated Oct 23, 2026

One-shot recipes for adding, deleting, moving, and replacing individual atoms in the active CatGo viewer structure. Use whenever the user asks to "add an atom", "delete atoms", "remove this atom", "move atom N", "replace H with Li", or any single-atom edit — including "add a hydrogen on top of atom 12" / "delete atoms 5–9" / "swap the oxygen at site 3 for fluorine". Skips the discovery loop (no need to list structure tools or check adsorption sites first); goes straight to the matching `catgo_structure` action. Triggers in Chinese on 加原子, 删原子, 减原子, 移动原子, 替换原子, 增加氢, 删除氧, 把 ... 换成 ....

The English summary is being prepared. Showing the original description.

Hello-QM/catgo-LRG208Updated Oct 23, 2026

See all skills by Hello-QM

Report a problem with this skill