Agent skill

General Property Units

by learningmatter-mit in learningmatter-mit/AtomisticSkills

Reference guide for energy, force, and stress units across MLIPs, DFT codes, and ASE, including conversion factors.

MITAuto-check passed

Install General Property Units

skills CLI
$ npx skills add learningmatter-mit/AtomisticSkills --skill general-property-units -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install learningmatter-mit/AtomisticSkills general-property-units --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/learningmatter-mit/AtomisticSkills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/general-property-units .claude/skills/general-property-units && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
general-property-units
GitHub stars
175
Token cost
~1.9k tokens
SKILL.md length
756 words
Files
1
Skills in repo
129
Repo updated
First seen
Licence
MIT

At a glance

Reference guide for energy, force, and stress units across MLIPs, DFT codes, and ASE, including conversion factors.

  • SKILL.md covers Goal, Project Standard, MLIP Model Units and DFT Code Units, plus 3 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

General Property Units is an agent skill from learningmatter-mit/AtomisticSkills. Reference guide for energy, force, and stress units across MLIPs, DFT codes, and ASE, including conversion factors.

Its SKILL.md is about 1.9k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

The repository describes itself as: Integrating AtomisticSkills into Agentic IDEs (Cursor, Claude Code, Codex, Google Antigravity, Hermes Agent, etc). The licence is MIT.

Example prompts

  • “/general-property-units”

Requirements

  • Python 3

What it can do on your machine

Read from SKILL.md and the folder at commit 7f2d86d. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are python).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • github.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

General Property Units loads about 1.9k tokens when it runs. Until then it costs about 35 tokens; SKILL.md has 756 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~35
When it runs · the whole SKILL.md, loaded when a task matches
~1.9k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from learningmatter-mit/AtomisticSkills at commit 7f2d86d, republished under its MIT licence (© learningmatter-mit). 756 words, ~1,860 tokens.

Download SKILL.mdSave it as .claude/skills/general-property-units/SKILL.md (or your agent's skills folder).
name
general-property-units
description
Reference guide for energy, force, and stress units across MLIPs, DFT codes, and ASE, including conversion factors.
metadata.category
general, machine-learning

Units Reference for Atomistic Simulations

Goal

Provide a single authoritative reference for units of energy, forces, and stress across all MLIPs, DFT codes, and simulation tools used in this project, including the conversions applied internally.

Project Standard

All internal representations follow the ASE (Atomic Simulation Environment) convention:

QuantityStandard UnitNotes
EnergyeVTotal energy of the system
Energy per atomeV/atomUsed for MAE reporting and training labels
ForceseV/ÅNegative gradient of energy w.r.t. position
StresseV/ųVoigt notation, 6-component (xx, yy, zz, yz, xz, xy)

MLIP Model Units

Prediction (Inference)

The raw torch model and the ASE calculator do not return the same stress units. Most calculators apply a unit conversion on the way out; two do not. Read the stress column for the layer you are actually calling.

Energy is eV and forces are eV/Å everywhere, at both layers. Only stress varies:

Model (calculator class)raw model outputASE calculator outputconversion in the ASE layer
MACE (MACECalculator)eV/ųeV/ųnone
UMA / FairChem (FAIRChemCalculator)eV/ųeV/ųnone
CHGNet standalone (CHGNetCalculator)GPaeV/Å³× stress_weight, default 1/160.21766208
CHGNet / M3GNet / TensorNet via MatGL (PESCalculator)GPaGPa unless asked otherwisenone by default — pass stress_unit="eV/A3"

Measured on one compressed Si cell (xx component), 2026-08-25:

pathrawcalculator defaultcalculator eV/ų
MACE-MP small-0.0762876-0.0762876—
UMA uma-s-1p1 (omat)-0.0821809-0.0821810—
CHGNet standalone 0.4.2-13.906347-0.0867966—
MatGL TensorNet-PES-MatPES-PBE-2025.2-10.780773-10.780773-0.067288
MatGL CHGNet-PES-MatPES-PBE-1M-2026.9—-15.229350-0.095054
MatGL M3GNet-PES-MatPES-2025.2—-20.293510-0.126662

Every ratio above is exactly 160.21766208, i.e. GPa per eV/ų.

[!IMPORTANT] matgl.ext.ase.PESCalculator takes stress_unit: Literal["eV/A3", "GPa"] = "GPa", so using it as a drop-in ASE calculator gives GPa, not ASE units — it prints a runtime warning saying so. Calling Potential.forward directly also returns GPa. Pass PESCalculator(potential=model, stress_unit="eV/A3"), or divide by 160.21766208. Mixing this up is a 160x error, not a sign error.

[!NOTE] All of the above are in the ASE sign convention: positive = tensile, compression negative. A compressed cell therefore gives negative diagonal stress at both layers. DFT codes may differ — see VASP below.

Training Input Labels

Training labels in training_data.json are stored in ASE standard units (eV, eV/Å, eV/ų). Conversions to trainer-specific units are handled automatically inside each wrapper:

TrainerEnergy InputForce InputStress InputInternal Conversion
MACEeVeV/ÅeV/ųNone — trains in eV/ų
FairChem (UMA)eVeV/ÅeV/ųNone — trains in eV/ų
MatGL (CHGNet/M3GNet)eVeV/ÅGPa (converted)eV/ų → GPa in _prepare_training_data

[!IMPORTANT] MatGL is the only trainer that requires stress conversion. The conversion from eV/ų → GPa is performed automatically inside MATGLWrapper._prepare_training_data(). Users should always provide stress labels in eV/ų.

Show full SKILL.md (335 more words)Show less
Training Output (Saved Metrics)

Each MLIP trainer natively reports MAE in eV. All wrappers apply a ×1000 conversion to save MAE values in meV to training_history.json and plot axes in training_history.png, for human readability and consistent cross-model comparison:

TrainerNative Energy MAENative Force MAENative Stress MAESaved Unit
MACEeV/atomeV/ÅeV/ųmeV (×1000)
FairChem (UMA)eV/atomeV/ÅeV/ųmeV (×1000)
MatGL (CHGNet/M3GNet)eV/atomeV/ÅGPa → eV/ųmeV (×1000)

The training_history.json keys and their units:

KeyUnit
energy_mae_train / energy_mae_valmeV/atom
force_mae_train / force_mae_valmeV/Å
stress_mae_train / stress_mae_valmeV/ų
loss_train / loss_valDimensionless (weighted combination)

[!NOTE] For MatGL stress: the trainer computes MAE in GPa internally. The wrapper converts back to eV/ų first, then multiplies by 1000 to get meV/ų, matching the other wrappers.

DFT Code Units

VASP
QuantityVASP InternalVASP OUTCARConversion to ASE Standard
EnergyeVeVNone needed
ForceseV/ÅeV/ÅNone needed
StresskB (kilo-Bar)kB (and GPa)kB × 0.1 = GPa, then GPa × 0.0062415 = eV/ų

[!NOTE] VASP stores stress internally in kB (kilo-Bar). The vasprun.xml parser in pymatgen returns stress in kB. The Atomate2 MCP tool applies the conversion kB → eV/ų automatically when convert_units=True (default).

Sign Convention

VASP reports stress with the opposite sign to the physics and ASE convention:

  • VASP: positive = compressive (pressure-like)
  • ASE/Physics/MLIPs: positive = tensile

The sign flip is handled during VASP output parsing (e.g. in the atomate2 MCP tool, VASP stress is multiplied by -1 in addition to the unit conversion).

Common Conversion Factors

FromToFactorASE Code
GPaeV/ų0.00624150913ase.units.GPa
eV/ųGPa160.217662081.0 / ase.units.GPa
kBGPa0.1—
kBeV/ų0.0006241509130.1 * ase.units.GPa
eVkJ/mol96.4853ase.units.kJ / ase.units.mol
eVkcal/mol23.0605ase.units.kcal / ase.units.mol
ÅBohr1.88972598861.0 / ase.units.Bohr

Quick Reference: Python Conversions

python
from ase import units

# Stress conversions
stress_GPa = stress_eV_per_A3 / units.GPa        # eV/ų → GPa
stress_eV_per_A3 = stress_GPa * units.GPa         # GPa → eV/ų
stress_eV_per_A3 = stress_kB * 0.1 * units.GPa    # kB → eV/ų

# Energy conversions
energy_kJ_per_mol = energy_eV * units.kJ / units.mol
energy_kcal_per_mol = energy_eV * units.kcal / units.mol

Constraints

  • Never mix unit systems within a single workflow.
  • Always verify stress units when comparing MLIP predictions to DFT references.
  • Training data JSON files must use eV/ų for stress — wrapper-internal conversion handles the rest.
  • When reporting MAE in papers/docs, specify the unit explicitly (e.g., "Force MAE: 50 meV/Å").

Author: Bowen Deng Contact: GitHub @learningmatter-mit

© learningmatter-mit, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/general-property-units of learningmatter-mit/AtomisticSkills.

Open the folder on GitHubat commit 7f2d86d

Compare with similar skills

General Property Units next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

General Property Units compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
General Property Units this skilllearningmatter-mit/AtomisticSkills175—~1.9kAutomated safety check: PassMIT
Unit Teststhedaviddias/Front-End-Checklist74k—~382Automated safety check: PassMIT
Warp Rust Unit Testswarpdotdev/warp65k1 repos~3.4kAutomated safety check: PassAGPL-3.0
CSS At Propertythedaviddias/Front-End-Checklist74k—~602Automated safety check: PassMIT
Writing Unit TestsTriliumNext/Trilium38k—~3.2kAutomated safety check: PassAGPL-3.0
Responsive Unitsthedaviddias/Front-End-Checklist74k—~472Automated safety check: PassMIT

Similar skills

  • Unit Tests

    thedaviddias/Front-End-Checklist

    A skill your agent uses when reviewing CI coverage, automated checks, or test strategy related to Write unit tests.

    74k GitHub stars~382 tokensUpdated yesterday
    Testing & QAAuto-check passed
  • Warp Rust Unit Tests

    warpdotdev/warp

    Guides writing, improving and running crate-level Rust unit tests in the Warp codebase, and says when a unit test is the wrong level.

    65k GitHub starsUsed in 1 repo~3.4k tokens
    Testing & QAAuto-check passed
  • CSS At Property

    thedaviddias/Front-End-Checklist

    A skill your agent uses when implementing animated gradients, complex CSS transitions that involve custom property values, or building a typed design token system where custom property misuse should…

    74k GitHub stars~602 tokensUpdated yesterday
    Frontend & DesignAuto-check passed
  • Writing Unit Tests

    TriliumNext/Trilium

    A skill your agent uses when writing, extending, or debugging Vitest unit tests anywhere in the Trilium monorepo — Preact components, jQuery widgets, client services, or the server/trilium-core…

    38k GitHub stars~3.2k tokensUpdated today
    Testing & QAAuto-check passed
  • Responsive Units

    thedaviddias/Front-End-Checklist

    A skill your agent uses when reviewing stylesheets, component styles, and responsive behavior related to Use relative units for responsive layouts.

    74k GitHub stars~472 tokensUpdated yesterday
    Frontend & DesignAuto-check passed
  • Logical Properties

    thedaviddias/Front-End-Checklist

    A skill your agent uses when reviewing stylesheets, component styles, and responsive behavior related to Use CSS logical properties for i18n and RTL support.

    74k GitHub stars~526 tokensUpdated yesterday
    Frontend & DesignAuto-check passed

More from learningmatter-mit/AtomisticSkills

All 129 skills in this repo
  • Drug Binding Site Definition

    learningmatter-mit/AtomisticSkills

    Define a docking search box (center coordinates + box dimensions in Angstroms) from a co-crystal ligand, binding-site residues, or a saved JSON specification.

    175 GitHub stars~2.9k tokensUpdated yesterday
    Auto-check passed
  • Drug Complex System Builder

    learningmatter-mit/AtomisticSkills

    Build a solvated, charge-neutralized protein-ligand complex for OpenMM molecular dynamics simulation.

    175 GitHub stars~2k tokensUpdated yesterday
    Auto-check passed
  • Drug Pocket Detection

    learningmatter-mit/AtomisticSkills

    Identify and rank ligandable pockets on a protein structure or model using geometry (fpocket) or an ML predictor (P2Rank).

    175 GitHub stars~4k tokensUpdated yesterday
    Auto-check passed
  • Chem Bond Dissociation

    learningmatter-mit/AtomisticSkills

    Calculate homolytic and heterolytic bond dissociation energies (BDEs) for all single bonds in a molecule using MLIPs with RDKit fragmentation.

    175 GitHub stars~2.5k tokensUpdated yesterday
    Auto-check passed
  • Chem Conformer Search

    learningmatter-mit/AtomisticSkills

    Generate molecular conformers with RDKit ETKDG, relax with MLIPs, and rank by energy with Boltzmann weighting.

    175 GitHub stars~1.3k tokensUpdated yesterday
    Auto-check passed
  • Chem DB Mof

    learningmatter-mit/AtomisticSkills

    Query multiple MOF databases (QMOF via MPContribs; ARC-MOF DB7/Majumdar et al.

    175 GitHub stars~1.9k tokensUpdated yesterday
    Auto-check passed

Questions about General Property Units

What does General Property Units do?

Reference guide for energy, force, and stress units across MLIPs, DFT codes, and ASE, including conversion factors. General Property Units is an agent skill from learningmatter-mit/AtomisticSkills. Reference guide for energy, force, and stress units across MLIPs, DFT codes, and ASE, including conversion factors.

How do I install General Property Units in Claude Code?

Run `npx skills add learningmatter-mit/AtomisticSkills --skill general-property-units -a claude-code`. Or copy the skill folder (skills/general-property-units in learningmatter-mit/AtomisticSkills) into .claude/skills/general-property-units in your project. Claude Code loads it when a task matches its description.

How do I install General Property Units in Codex?

Run `npx skills add learningmatter-mit/AtomisticSkills --skill general-property-units -a codex`. Or copy the skill folder (skills/general-property-units in learningmatter-mit/AtomisticSkills) into .agents/skills/general-property-units in your project. Codex loads it when a task matches its description.

Can I use General Property Units in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add learningmatter-mit/AtomisticSkills --skill general-property-units -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/general-property-units, .gemini/skills/general-property-units, .github/skills/general-property-units and .opencode/skills/general-property-units in your project.

What does General Property Units need to run?

SKILL.md names no scripts, command-line tools or credentials: General Property Units is instructions for the agent only. Our summary lists: Python 3.

Does General Property Units access the network?

SKILL.md names 1 domain. As links in the text: github.com. This is read from the text; nothing was executed.

Is General Property Units safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does General Property Units use?

General Property Units is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does General Property Units use?

About 1.9k tokens (SKILL.md is roughly 7.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to General Property Units?

Skills that share tags, products or a category with General Property Units: Unit Tests (thedaviddias/Front-End-Checklist, 74k stars), Warp Rust Unit Tests (warpdotdev/warp, 65k stars), CSS At Property (thedaviddias/Front-End-Checklist, 74k stars) and Writing Unit Tests (TriliumNext/Trilium, 38k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains General Property Units?

learningmatter-mit (a GitHub organization) maintains it in learningmatter-mit/AtomisticSkills, which has 175 GitHub stars. The repository holds 129 skills in this directory. The repository was last updated on October 6, 2026.

Source: learningmatter-mit/AtomisticSkills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.