Agent skill

Structure Enumeration

by lamm-mit in lamm-mit/scienceclaw

Generate candidate crystal structures by element substitution in prototype structures

Apache-2.0Auto-check passedResearch & Science

Install Structure Enumeration

skills CLI
$ npx skills add lamm-mit/scienceclaw --skill structure-enumeration -a claude-code

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

GitHub CLI
$ gh skill install lamm-mit/scienceclaw structure-enumeration --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/lamm-mit/scienceclaw.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/structure-enumeration .claude/skills/structure-enumeration && 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
structure-enumeration
GitHub stars
244
Token cost
~1k tokens
SKILL.md length
296 words
Files
2 (incl. scripts)
Skills in repo
85
Repo updated
First seen
Licence
Apache-2.0

At a glance

Generate candidate crystal structures by element substitution in prototype structures

  • Works in 5 steps: Loads each prototype structure (from MP,… → Identifies the metal site (heaviest… → For each target metal, substitutes the… → …
  • Tasks that involve Physical and earth sciences
  • SKILL.md covers Scripts, Parameters, Wyckoff Spec Format and How It Works, plus 1 more section
  • Runs Python scripts from its folder; calls python3

What it does

Structure Enumeration is an agent skill from lamm-mit/scienceclaw. Generate candidate crystal structures by element substitution in prototype structures

Its SKILL.md is about 1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including scripts (for example `scripts/enumerate_structures.py`).

It sits in Research & Science, covering Physical and earth sciences. The licence is Apache-2.0.

When your agent uses it

  • Tasks that involve Physical and earth sciences

Example prompts

  • “/structure-enumeration”

Requirements

  • Python 3

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Loads each prototype structure (from MP, local file, or Wyckoff construction)
  2. Identifies the metal site (heaviest non-hydrogen element)
  3. For each target metal, substitutes the metal site and writes a new CIF file
  4. The original prototype is also saved (with _prototype suffix)
  5. All CIF files are written to --output-dir

What it can do on your machine

Read from SKILL.md and the folder at commit ab9aba1. 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

    Ships 1 file in scripts/ (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • python3

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

  • Network

    No URLs in SKILL.md.

    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

Structure Enumeration loads about 1k tokens when it runs. Until then it costs about 27 tokens; SKILL.md has 296 words of instructions outside code blocks.

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

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); the scripts in this folder are not scanned.

SKILL.md

The full file from lamm-mit/scienceclaw at commit ab9aba1, republished under its Apache-2.0 licence (© lamm-mit). 296 words, ~1,018 tokens.

Download SKILL.mdSave it as .claude/skills/structure-enumeration/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
structure-enumeration
description
Generate candidate crystal structures by element substitution in prototype structures

Structure Enumeration Skill

Generate candidate crystal structures by substituting elements in a prototype structure. Supports three prototype sources: Materials Project lookup, local CIF files, or building from spacegroup + Wyckoff positions.

Scripts

enumerate_structures.py — Substitute elements in a prototype

From Materials Project (for ambient-pressure phases):

bash
python3 {baseDir}/scripts/enumerate_structures.py \
  --prototypes LaH3,CaH2 \
  --metals Y,Ca,Sc,Ce \
  --format json

From Wyckoff positions (for high-pressure or hypothetical phases not in MP):

bash
python3 {baseDir}/scripts/enumerate_structures.py \
  --wyckoff '[{"name":"LaH10","spacegroup":225,"lattice":{"a":5.1},"species":["La","H","H"],"coords":[[0,0,0],[0.25,0.25,0.25],[0.118,0.118,0.118]]}]' \
  --metals Y,Ca,Sc,Ce \
  --format json

Multiple prototypes via Wyckoff:

bash
python3 {baseDir}/scripts/enumerate_structures.py \
  --wyckoff '[{"name":"LaH10","spacegroup":225,"lattice":{"a":5.1},"species":["La","H","H"],"coords":[[0,0,0],[0.25,0.25,0.25],[0.118,0.118,0.118]]},{"name":"CaH6","spacegroup":229,"lattice":{"a":3.54},"species":["Ca","H"],"coords":[[0,0,0],[0.25,0,0.5]]}]' \
  --metals Y,Sc,Ce,Ba \
  --format json

Parameters

ParameterDescription
--prototypesComma-separated formulas to fetch from Materials Project (e.g. LaH3,CaH2). Only works for phases in MP.
--mp-idsComma-separated Materials Project IDs (e.g. mp-1234,mp-5678)
--prototype-filesComma-separated paths to local CIF/POSCAR files
--wyckoffJSON array of prototype specs for building from spacegroup + Wyckoff positions (see format below). Use this for high-pressure phases not in MP.
--metalsRequired. Comma-separated target metals for substitution (e.g. Y,Ca,Sc,Ce)
--output-dirDirectory for output CIF files (default: ~/.scienceclaw/enumerated_structures)
--formatsummary | json
--dry-runShow plan without generating structures

Wyckoff Spec Format

Each prototype is a JSON object with:

json
{
  "name": "LaH10",
  "spacegroup": 225,
  "lattice": {"a": 5.1},
  "species": ["La", "H", "H"],
  "coords": [[0,0,0], [0.25,0.25,0.25], [0.118,0.118,0.118]]
}
  • name: label for the prototype
  • spacegroup: international space group number
  • lattice: {"a": ...} for cubic, {"a": ..., "c": ...} for hexagonal
  • species: element at each Wyckoff site (first non-H element is the metal site for substitution)
  • coords: fractional coordinates for each Wyckoff site
Common superhydride prototypes
PrototypeSGSG#LatticeSpeciesCoordinates
LaH10 (clathrate)Fm-3m225a=5.1La, H, H[0,0,0], [0.25,0.25,0.25], [0.118,0.118,0.118]
CaH6 (sodalite)Im-3m229a=3.54Ca, H[0,0,0], [0.25,0,0.5]
H3SIm-3m229a=3.09S, H[0,0,0], [0.5,0,0.5]
YH9P63/mmc194a=3.6, c=5.5Y, H, H[0,0,0.25], [0.167,0.333,0.25], [0.167,0.333,0.583]

How It Works

  1. Loads each prototype structure (from MP, local file, or Wyckoff construction)
  2. Identifies the metal site (heaviest non-hydrogen element)
  3. For each target metal, substitutes the metal site and writes a new CIF file
  4. The original prototype is also saved (with _prototype suffix)
  5. All CIF files are written to --output-dir

Output (JSON)

json
{
  "status": "success",
  "output_dir": "/home/user/.scienceclaw/enumerated_structures",
  "prototypes_used": ["LaH10", "CaH6"],
  "metals": ["Y", "Ca", "Sc"],
  "total_generated": 6,
  "structures": [
    {
      "label": "YH10_from_LaH10",
      "formula": "YH10",
      "prototype": "LaH10",
      "metal": "Y",
      "n_atoms": 44,
      "cif_path": "/home/user/.scienceclaw/enumerated_structures/YH10_from_LaH10.cif"
    }
  ]
}

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

Files

SKILL.md and 1 other file (scripts) in skills/structure-enumeration of lamm-mit/scienceclaw.

  • SKILL.md
  • scripts/enumerate_structures.py

Open the folder on GitHubat commit ab9aba1

Compare with similar skills

Structure Enumeration 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.

Structure Enumeration compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Structure Enumeration this skilllamm-mit/scienceclaw244—~1kAutomated safety check: PassApache-2.0
Cantera Ignition DelayK-Dense-AI/scientific-agent-skills48k2 repos~2.2kAutomated safety check: PassMIT
AstropyzLanqing/codex-claude-academic-skills4.6k14 repos~2.9kAutomated safety check: PassBSD-3-Clause
PymatgenzLanqing/codex-claude-academic-skills4.6k12 repos~5kAutomated safety check: PassMIT
Weathertrpc-group/trpc-agent-go1.8k9 repos~591Automated safety check: PassApache-2.0
Pymol VisualizationChatMol/ChatMol372—~1.2kAutomated safety check: PassMIT

Similar skills

  • Cantera Ignition Delay

    K-Dense-AI/scientific-agent-skills

    Runs Cantera constant-volume or constant-pressure ignition simulations and reports temperature-based ignition delay with mechanism provenance and checks.

    48k GitHub starsUsed in 2 repos~2.2k tokens
    Research & ScienceAuto-check passed
  • Astropy

    zLanqing/codex-claude-academic-skills

    Comprehensive Python library for astronomy and astrophysics.

    4.6k GitHub starsUsed in 14 repos~2.9k tokens
    Research & ScienceAuto-check passed
  • Pymatgen

    zLanqing/codex-claude-academic-skills

    Materials science toolkit. An agent skill from zLanqing/codex-claude-academic-skills.

    4.6k GitHub starsUsed in 12 repos~5k tokens
    Research & ScienceAuto-check passed
  • Weather

    trpc-group/trpc-agent-go

    Get current weather and forecasts via wttr.in or Open-Meteo.

    1.8k GitHub starsUsed in 9 repos~591 tokens
    Research & ScienceAuto-check passed
  • Pymol Visualization

    ChatMol/ChatMol

    Generate publication-quality molecular visualization images using PyMOL.

    372 GitHub stars~1.2k tokensUpdated 6 mo ago
    Research & ScienceAuto-check passed
  • Review

    Muuuun/luxas

    Write domain-authentic review articles that synthesize rather than stack.

    1.2k GitHub stars~2.1k tokensUpdated 1 mo ago
    Research & ScienceAuto-check passed

More from lamm-mit/scienceclaw

All 85 skills in this repo
  • Fred Economic Data

    lamm-mit/scienceclaw

    Query FRED (Federal Reserve Economic Data) API for 800,000+ economic time series from 100+ sources.

    244 GitHub starsUsed in 4 repos~3k tokens
    Auto-check passed
  • Drug Research

    lamm-mit/scienceclaw

    Generates comprehensive drug research reports with compound disambiguation, evidence grading, and mandatory completeness sections.

    244 GitHub starsUsed in 3 repos~1.7k tokens
    Auto-check passed
  • Imaging Data Commons

    lamm-mit/scienceclaw

    Query and download public cancer imaging data from NCI Imaging Data Commons using idc-index.

    244 GitHub starsUsed in 5 repos~11k tokens
    Auto-check passed
  • Rowan

    lamm-mit/scienceclaw

    Cloud-based quantum chemistry platform with Python API. An agent skill from lamm-mit/scienceclaw.

    244 GitHub starsUsed in 4 repos~3.1k tokens
    Auto-check: warnings
  • Infographics

    lamm-mit/scienceclaw

    Create professional infographics using Nano Banana Pro AI with smart iterative refinement.

    244 GitHub starsUsed in 6 repos~4.4k tokens
    Auto-check: notes
  • Disease Research

    lamm-mit/scienceclaw

    Generate comprehensive disease research reports using 100+ ToolUniverse tools.

    244 GitHub stars~946 tokensUpdated 1 mo ago
    Auto-check passed

Questions about Structure Enumeration

What does Structure Enumeration do?

Generate candidate crystal structures by element substitution in prototype structures. Structure Enumeration is an agent skill from lamm-mit/scienceclaw.

When should I use Structure Enumeration?

Structure Enumeration fits situations like: tasks that involve Physical and earth sciences.

How do I install Structure Enumeration in Claude Code?

Run `npx skills add lamm-mit/scienceclaw --skill structure-enumeration -a claude-code`. Or copy the skill folder (skills/structure-enumeration in lamm-mit/scienceclaw) into .claude/skills/structure-enumeration in your project. Claude Code loads it when a task matches its description.

How do I install Structure Enumeration in Codex?

Run `npx skills add lamm-mit/scienceclaw --skill structure-enumeration -a codex`. Or copy the skill folder (skills/structure-enumeration in lamm-mit/scienceclaw) into .agents/skills/structure-enumeration in your project. Codex loads it when a task matches its description.

Can I use Structure Enumeration 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 lamm-mit/scienceclaw --skill structure-enumeration -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/structure-enumeration, .gemini/skills/structure-enumeration, .github/skills/structure-enumeration and .opencode/skills/structure-enumeration in your project.

What does Structure Enumeration need to run?

Going by SKILL.md and its folder, Structure Enumeration needs Python for the scripts in its folder and the command-line tools its instructions call (python3). Our summary lists: Python 3.

Does Structure Enumeration access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Structure Enumeration 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. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Structure Enumeration use?

Structure Enumeration is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Structure Enumeration use?

About 1k tokens (SKILL.md is roughly 4.1k 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 Structure Enumeration?

Skills that share tags, products or a category with Structure Enumeration: Cantera Ignition Delay (K-Dense-AI/scientific-agent-skills, 48k stars), Astropy (zLanqing/codex-claude-academic-skills, 4.6k stars), Pymatgen (zLanqing/codex-claude-academic-skills, 4.6k stars) and Weather (trpc-group/trpc-agent-go, 1.8k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Structure Enumeration?

lamm-mit (a GitHub user) maintains it in lamm-mit/scienceclaw, which has 244 GitHub stars. The repository holds 85 skills in this directory. The repository was last updated on August 21, 2026.

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