Experimental Design
aiming-lab/AutoResearchClaw
Best practices for designing reproducible ML experiments. An agent skill from aiming-lab/AutoResearchClaw.
Match an experimental spectrum (1H NMR, 13C NMR, IR) against predicted or database reference spectra for candidate ranking and structure confirmation.
$ npx skills add learningmatter-mit/AtomisticSkills --skill chem-spectrum-matcher -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install learningmatter-mit/AtomisticSkills chem-spectrum-matcher --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/learningmatter-mit/AtomisticSkills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/chem-spectrum-matcher .claude/skills/chem-spectrum-matcher && rm -rf skills-srcUse ~/.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/
Install the "chem-spectrum-matcher" agent skill from https://github.com/learningmatter-mit/AtomisticSkills/tree/main/skills/chem-spectrum-matcher into .claude/skills/chem-spectrum-matcher/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "chem-spectrum-matcher", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/learningmatter-mit/AtomisticSkills/tree/main/skills/chem-spectrum-matcherType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add learningmatter-mit/AtomisticSkills --skill chem-spectrum-matcher -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install learningmatter-mit/AtomisticSkills chem-spectrum-matcher --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/learningmatter-mit/AtomisticSkills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/chem-spectrum-matcher .agents/skills/chem-spectrum-matcher && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "chem-spectrum-matcher" agent skill from https://github.com/learningmatter-mit/AtomisticSkills/tree/main/skills/chem-spectrum-matcher into .agents/skills/chem-spectrum-matcher/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "chem-spectrum-matcher", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add learningmatter-mit/AtomisticSkills --skill chem-spectrum-matcher -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install learningmatter-mit/AtomisticSkills chem-spectrum-matcher --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/learningmatter-mit/AtomisticSkills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/chem-spectrum-matcher .cursor/skills/chem-spectrum-matcher && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "chem-spectrum-matcher" agent skill from https://github.com/learningmatter-mit/AtomisticSkills/tree/main/skills/chem-spectrum-matcher into .cursor/skills/chem-spectrum-matcher/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "chem-spectrum-matcher", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/learningmatter-mit/AtomisticSkills.git --path skills/chem-spectrum-matcher--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add learningmatter-mit/AtomisticSkills --skill chem-spectrum-matcher -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install learningmatter-mit/AtomisticSkills chem-spectrum-matcher --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/learningmatter-mit/AtomisticSkills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/chem-spectrum-matcher .gemini/skills/chem-spectrum-matcher && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "chem-spectrum-matcher" agent skill from https://github.com/learningmatter-mit/AtomisticSkills/tree/main/skills/chem-spectrum-matcher into .gemini/skills/chem-spectrum-matcher/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "chem-spectrum-matcher", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install learningmatter-mit/AtomisticSkills chem-spectrum-matcherInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add learningmatter-mit/AtomisticSkills --skill chem-spectrum-matcher -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/learningmatter-mit/AtomisticSkills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/chem-spectrum-matcher .github/skills/chem-spectrum-matcher && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "chem-spectrum-matcher" agent skill from https://github.com/learningmatter-mit/AtomisticSkills/tree/main/skills/chem-spectrum-matcher into .github/skills/chem-spectrum-matcher/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "chem-spectrum-matcher", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add learningmatter-mit/AtomisticSkills --skill chem-spectrum-matcher -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install learningmatter-mit/AtomisticSkills chem-spectrum-matcher --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/learningmatter-mit/AtomisticSkills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/chem-spectrum-matcher .opencode/skills/chem-spectrum-matcher && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "chem-spectrum-matcher" agent skill from https://github.com/learningmatter-mit/AtomisticSkills/tree/main/skills/chem-spectrum-matcher into .opencode/skills/chem-spectrum-matcher/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "chem-spectrum-matcher", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
chem-spectrum-matcherMatch an experimental spectrum (1H NMR, 13C NMR, IR) against predicted or database reference spectra for candidate ranking and structure confirmation.
Chem Spectrum Matcher is an agent skill from learningmatter-mit/AtomisticSkills. Match an experimental spectrum (1H NMR, 13C NMR, IR) against predicted or database reference spectra for candidate ranking and structure confirmation. Supports local catalog lookup, public database fallback, and pluggable similarity metrics.
Its SKILL.md is about 2.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 6 other files, including scripts (for example `examples/nmr-ethanol/README.md`, `scripts/match_spectrum.py` and `scripts/register_spectrum.py`).
The repository describes itself as: Integrating AtomisticSkills into Agentic IDEs (Cursor, Claude Code, Codex, Google Antigravity, Hermes Agent, etc). The licence is MIT.
3 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 6257444. It shows what the files ask for, not the result of running them.
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.
Ships 2 files in scripts/ (Python), which the agent can run.
From the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
doi.orgwebbook.nist.govrdkit.orggithub.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Chem Spectrum Matcher loads about 2.5k tokens when it runs. Until then it costs about 66 tokens; SKILL.md has 838 words of instructions outside code blocks.
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.
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.
The full file from learningmatter-mit/AtomisticSkills at commit 6257444, republished under its MIT licence (© learningmatter-mit). 838 words, ~2,515 tokens.
.claude/skills/chem-spectrum-matcher/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.To retrieve or generate reference spectra for a set of candidate molecules and rank them by similarity to an experimental query spectrum. The skill abstracts a common three-component pattern:
This pattern applies to any spectral modality: 1H NMR, 13C NMR, IR, mass spectrometry, UV-Vis, Raman. The concrete implementation here covers 1H NMR and IR, with the NMR path fully implemented and IR sketched for extension.
general-query-literature-database first.chem-nmr-analysis (Wasserstein deconvolution) for quantifying component ratios.chem-nmr-predict (SPINUS) covers 1H only. Extension needed.SMILES ──► [Predictor] ──► predicted spectrum (.xy / .jdx)
│
▼
[Local Catalog] ◄── register_spectrum.py
│
[Public DB fallback] ──────────┤ (NMRShiftDB2, NIST WebBook)
│
▼
Experimental query ──► [match_spectrum.py] ──► ranked candidates| Modality | Predictor skill | Public DB | Similarity metric |
|---|---|---|---|
| 1H NMR | chem-nmr-predict (SPINUS + nmrsim) | NMRShiftDB2 | L2 / Wasserstein |
| IR | chem-db-spectra (NIST) or ORCA DFT | NIST WebBook | Cosine |
| 13C NMR | (not yet implemented) | NMRShiftDB2 | L2 |
| Mass spec | (not yet implemented) | NIST WebBook | Dot product |
${CLAUDE_SKILL_DIR}/../../venv/run cpu python ${CLAUDE_SKILL_DIR}/scripts/match_spectrum.py \
--query experimental_spectrum.xy \
--smiles "CCO" \
--names "ethanol" \
--modality nmr_1h \
--catalog_dir research/spectrum_catalog/ \
--output_dir <research_dir>/spectrum_match/ \
--fallback_public_dbRun the appropriate predictor for the modality, then register outputs into the catalog, then match.
1H NMR:
${CLAUDE_SKILL_DIR}/../../venv/run cpu python ${CLAUDE_SKILL_DIR}/../chem-nmr-predict/scripts/predict_nmr.py \
--smiles "CCO" \
--names "ethanol" \
--field_mhz 400 \
--output_dir <research_dir>/nmr_predictions/
${CLAUDE_SKILL_DIR}/../../venv/run cpu python ${CLAUDE_SKILL_DIR}/scripts/register_spectrum.py \
--source_dir <research_dir>/nmr_predictions/ \
--modality nmr_1h \
--catalog_dir research/spectrum_catalog/IR (from NIST WebBook):
${CLAUDE_SKILL_DIR}/../../venv/run cpu python ${CLAUDE_SKILL_DIR}/../chem-db-spectra/scripts/query_spectra.py \
C10H18O <research_dir>/ir_references/ --type IR
${CLAUDE_SKILL_DIR}/../../venv/run cpu python ${CLAUDE_SKILL_DIR}/scripts/register_spectrum.py \
--source_dir <research_dir>/ir_references/ \
--modality ir \
--catalog_dir research/spectrum_catalog/IR (QM-backed, high accuracy):
# Run ORCA frequency calculation → extract IR spectrum → register
# ORCA setup (ORCA_BINARY_PATH, x86_64 only): see the chem-dft-orca-singlepoint skill.
# After ORCA run, convert output with ${CLAUDE_SKILL_DIR}/../../src/utils/dft/orca_utils.py
# then call register_spectrum.py --modality irmatch_spectrum.py retrieves reference spectra (catalog → public DB fallback) and computes similarity scores between the query and each candidate.
${CLAUDE_SKILL_DIR}/../../venv/run cpu python ${CLAUDE_SKILL_DIR}/scripts/match_spectrum.py \
--query experimental_spectrum.xy \
--smiles "CCO" \
--names "ethanol" \
--modality nmr_1h \
--metric l2 \
--catalog_dir research/spectrum_catalog/ \
--output_dir <research_dir>/spectrum_match/ \
--plotArguments:
--query: experimental spectrum file (two-column, ppm/wavenumber vs intensity; .xy, .csv, .jdx).--smiles: candidate SMILES strings.--names: human-readable labels matching SMILES order.--modality: nmr_1h, nmr_13c, ir. Controls which catalog partition and public DB to query.--metric: similarity metric — l2 (default), cosine, wasserstein. Choose based on modality (see table above).--catalog_dir: local spectrum catalog directory.--fallback_public_db: query NMRShiftDB2 or NIST WebBook for any candidate not in catalog.--field_mhz: spectrometer field (NMR only, default 400). Must match experimental spectrum.--plot: emit overlay plot (match_plot.png) with query and top-3 candidates.--output_dir: directory for outputs.Outputs:
match_results.json — ranked candidates with similarity scores, source (catalog/public_db/predicted), and spectrum paths.match_plot.png — overlay of query vs ranked references (if --plot).input_configs.yaml — all parameters for reproducibility.Read match_results.json. Candidates are ranked by descending similarity score (1.0 = perfect match, 0.0 = no overlap).
If/Then rules:
| Score (L2 / cosine) | Interpretation | Agent action |
|---|---|---|
| > 0.90 | Strong match | Report top candidate with confidence. |
| 0.70–0.90 | Plausible match | Report with caveat; check overlay plot for unmatched peaks. |
| < 0.70 | Poor match | Likely wrong candidate or missing structure. Expand candidate list or re-examine experimental spectrum. |
After reading scores, the agent must:
match_plot.png — verify visual agreement, check for systematic shifts.| Failure | Symptom | Agent action |
|---|---|---|
| Catalog miss, no public DB hit | match_results.json candidate marked missed | Run appropriate predictor then register_spectrum.py. |
| Ppm/wavenumber axis mismatch | Similarity scores all near 0 | Query and reference use different x-axis. Check --field_mhz or unit convention. |
| SMILES canonicalization fails | RDKit error | SMILES invalid. Verify with RDKit before retry. |
| NMRShiftDB2 / NIST timeout | HTTP error during public DB query | Retry once; if persistent, disable --fallback_public_db and predict locally. |
| ORCA IR prediction unavailable | ORCA_BINARY_PATH not set | Set it as described in the chem-dft-orca-singlepoint skill, or fall back to NIST WebBook IR. |
drug-db-pubchem → resolve compound name to SMILES
chem-nmr-predict → 1H NMR prediction (SPINUS + nmrsim)
chem-db-spectra → experimental IR/MS from NIST WebBook
chem-nmr-analysis → mixture deconvolution (Wasserstein)
chem-spectrum-matcher → this skill: catalog + retrieval + similarity rankingPrimary (NMR matching):
Required packages: numpy, scipy, rdkit, requests, matplotlib.
IR prediction via QM (optional):
Requires the ORCA_BINARY_PATH environment variable (see the chem-dft-orca-singlepoint skill); x86_64 only, since SCINE has no aarch64 wheels.
catalog.json keyed by (canonical_smiles, modality). Do not edit manually..xy files are two-column tab-separated (x-axis descending, intensity). .jdx files are parsed via the jcamp package.Author: Magdalena Lederbauer Contact: GitHub @mlederbauer
© 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
SKILL.md and 3 other files (scripts) in skills/chem-spectrum-matcher of learningmatter-mit/AtomisticSkills.
Open the folder on GitHubat commit 6257444
Chem Spectrum Matcher 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Chem Spectrum Matcher this skilllearningmatter-mit/AtomisticSkills | 176 | — | ~2.5k | Automated safety check: Pass | MIT | |
| Experimental Designaiming-lab/AutoResearchClaw | 15k | — | ~286 | Automated safety check: Pass | MIT | |
| Matchersonsi/gomega | 2.4k | — | ~2.1k | Automated safety check: Pass | MIT | |
| Find Matching Tenderssickn33/agentic-awesome-skills | 47k | 1 repos | ~1k | Automated safety check: Pass | Apache-2.0 | |
| Custom Matchersonsi/gomega | 2.4k | — | ~2.4k | Automated safety check: Pass | MIT | |
| Composing Matchersonsi/gomega | 2.4k | — | ~1.5k | Automated safety check: Pass | MIT |
aiming-lab/AutoResearchClaw
Best practices for designing reproducible ML experiments. An agent skill from aiming-lab/AutoResearchClaw.
onsi/gomega
The complete catalog of Gomega's built-in matchers, grouped by category — equivalence (Equal/BeEquivalentTo/BeComparableTo/BeIdenticalTo/BeAssignableToTypeOf), presence (BeNil/BeZero/BeEmpty)…
sickn33/agentic-awesome-skills
Find open AU/NZ government tenders matching what a company does, ranked by fit with why and gap analysis.
onsi/gomega
Writing your own Gomega matchers — the GomegaMatcher interface (Match/FailureMessage/NegatedFailureMessage), gcustom.MakeMatcher with message templates and template data, the format package helpers…
onsi/gomega
Build compound Gomega assertions by combining matchers — And/SatisfyAll (all pass), Or/SatisfyAny (any pass), Not (negate), WithTransform to map the actual before matching, Satisfy for an ad-hoc…
cbrock84/headcount
Designs, runs, and reads A/B tests and growth experiments — hypothesis, sample size, duration, and honest interpretation.
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.
learningmatter-mit/AtomisticSkills
Build a solvated, charge-neutralized protein-ligand complex for OpenMM molecular dynamics simulation.
learningmatter-mit/AtomisticSkills
Identify and rank ligandable pockets on a protein structure or model using geometry (fpocket) or an ML predictor (P2Rank).
learningmatter-mit/AtomisticSkills
Calculate homolytic and heterolytic bond dissociation energies (BDEs) for all single bonds in a molecule using MLIPs with RDKit fragmentation.
learningmatter-mit/AtomisticSkills
Generate molecular conformers with RDKit ETKDG, relax with MLIPs, and rank by energy with Boltzmann weighting.
learningmatter-mit/AtomisticSkills
Query multiple MOF databases (QMOF via MPContribs; ARC-MOF DB7/Majumdar et al.
Match an experimental spectrum (1H NMR, 13C NMR, IR) against predicted or database reference spectra for candidate ranking and structure confirmation. Chem Spectrum Matcher is an agent skill from learningmatter-mit/AtomisticSkills. Match an experimental spectrum (1H NMR, 13C NMR, IR) against predicted or database reference spectra for candidate ranking and structure confirmation.
Run `npx skills add learningmatter-mit/AtomisticSkills --skill chem-spectrum-matcher -a claude-code`. Or copy the skill folder (skills/chem-spectrum-matcher in learningmatter-mit/AtomisticSkills) into .claude/skills/chem-spectrum-matcher in your project. Claude Code loads it when a task matches its description.
Run `npx skills add learningmatter-mit/AtomisticSkills --skill chem-spectrum-matcher -a codex`. Or copy the skill folder (skills/chem-spectrum-matcher in learningmatter-mit/AtomisticSkills) into .agents/skills/chem-spectrum-matcher in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add learningmatter-mit/AtomisticSkills --skill chem-spectrum-matcher -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/chem-spectrum-matcher, .gemini/skills/chem-spectrum-matcher, .github/skills/chem-spectrum-matcher and .opencode/skills/chem-spectrum-matcher in your project.
Going by SKILL.md and its folder, Chem Spectrum Matcher needs Python for the scripts in its folder. Our summary lists: Python 3.
SKILL.md names 4 domains. As links in the text: doi.org, webbook.nist.gov, rdkit.org and github.com. This is read from the text; nothing was executed.
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.
Chem Spectrum Matcher is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.5k tokens (SKILL.md is roughly 10k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Chem Spectrum Matcher: Experimental Design (aiming-lab/AutoResearchClaw, 15k stars), Matchers (onsi/gomega, 2.4k stars), Find Matching Tenders (sickn33/agentic-awesome-skills, 47k stars) and Custom Matchers (onsi/gomega, 2.4k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
learningmatter-mit (a GitHub organization) maintains it in learningmatter-mit/AtomisticSkills, which has 176 GitHub stars. The repository holds 129 skills in this directory. The repository was last updated on October 7, 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.