Cluster Config Test

SkillDev tools

Validate an HPC/cluster configuration against the live cluster BEFORE submitting a VASP workflow, or diagnose why a remote job produced no output. Reads the user's submit script / run config, then calls the validate_hpc_config tool to probe the real cluster over SSH (POTCAR directories, per-element pseudopotentials, and VASP binary resolution under the real module-load + conda environment). Use whenever the user asks to "test my cluster config", "check if VASP will run", "verify my HPC setup", or after a job silently failed for environment/path reasons.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Cluster Config Test skill

What this skill tells your AI

The instructions your AI receives, as published by hello-qm/catgo-lrg in server/catgo/workflow/skills/troubleshooting/cluster_config_test/SKILL.md and read by ahel’s review.

Provider-agnostic: works for any in-app AI (DeepSeek, Qwen, Kimi, Gemini, Anthropic, Codex, …). You validate the cluster by calling the validate_hpc_config tool — you do NOT run raw SSH yourself.

When to Use

  • The user wants to confirm their cluster settings work before running a workflow.
  • A submitted VASP job "completed" but produced no real output, or POTCAR was missing.
  • The user pasted a submit script and asks whether it will run on their cluster.

Why this matters (the failure it catches)

CatGo builds the POTCAR on the remote host by concatenating <potcar_root>/<functional>/<variant>/POTCAR in POSCAR element order. If the POTCAR root is wrong/unreachable, an element pseudopotential is missing, or the VASP binary doesn't resolve under the job's module-load/conda environment, the run fails — and a plain SLURM job can still exit 0, so the failure is easy to miss. Validate first.

Procedure

1. Gather the config

From the user's run configuration or their submit script, collect:

  • potcar_root — directory holding the POTCAR tree, e.g. /scratch/user/VASP/pot64
  • potcar_functional — e.g. potpaw_PBE (default), potpaw_PBE.54, potpaw_LDA
  • vasp_command — the run line, e.g. srun --hint=nomultithread vasp_std
  • module_loads — every module load/module switch line (newline-separated)
  • python_env — the source …/conda.sh + conda activate … lines

If the user only pasted a submit script, parse these out of it. If something is missing, ask the user for it (do not guess paths).

2. Call the tool

validate_hpc_config({
  "potcar_root": "/scratch/user/VASP/pot64",
  "potcar_functional": "potpaw_PBE",
  "vasp_command": "srun --hint=nomultithread vasp_std",
  "module_loads": "module load vasp/6.4.2",
  "python_env": "source /scratch/user/miniconda3/etc/profile.d/conda.sh\nconda activate catgo"
})

The active HPC session and the element list (from the loaded structure) are filled in automatically — only pass elements/session_id to override. The tool returns { success, checks: [{ name, ok, severity, detail }], message }.

3. Interpret and report

  • severity: "error" + ok: falsewill break the run. Report the exact problem and fix (wrong POTCAR root, missing element pseudopotential, etc.).
  • severity: "warn" (e.g. the VASP binary not resolving) → advisory: the binary may live only on compute nodes, or the module-load line is wrong. Tell the user which.
  • success: true → cluster is ready; offer to run the workflow.

Map results to the common causes:

Check failsLikely cause / fix
POTCAR root directorywrong/unreachable path; fix potcar_root, check it exists on this host
Functional directorywrong functional name; pick the one that exists (e.g. potpaw_PBE.54)
Element POTCARs (missing X)that element's pseudopotential dir is absent under the functional
VASP binary (warn)wrong/absent module load, or binary only on compute nodes

4. Re-test after fixes

After the user updates a path or module line, call validate_hpc_config again. Iterate until success: true, then proceed to submit.

Notes

  • Read-only: the tool only probes; it never writes or submits.
  • If there is no connected cluster, the tool errors — tell the user to connect a cluster in the HPC panel first.
  • This is the deeper counterpart to the "Test configuration" button in the Run dialog: the button checks fixed fields; here you read the user's actual submit script.

Signals

GitHub stars
196
Forks
23
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
cluster-config-test
Source
github.com/hello-qm/catgo-lrg