Transition state
Locate the first-order saddle point (transition state) for a chemical reaction starting from a TS-guess geometry, with a frequency check confirming exactly one imaginary mode.From its SKILL.md
npx -y skills add evan-robles/assay --skill transition_stateAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
7.1 KB, as published. Nobody here has run it
Transition-State Search
[!IMPORTANT] Before running — confirm the level of theory; never guess. If the user did not specify
--method(xtb | mopac | dft | hf) — and, where relevant,--functional/--basis/--tier,--solvent(or explicit gas phase),--charge,--mult— stop and ask the user (do not silently default or carry over the previous run's choice). The engine refuses a DFT/HF run that omits the consequential knobs unless you pass--accept-defaults. At launch, immediately give the user the live.outlog path and offertail -f— do not wait for the run to finish. (calculation-reporting-standards non-negotiables #10 and #9.)
Goal
Locate a first-order saddle point on the potential-energy surface starting from a TS-guess geometry, then verify it via a Hessian that the converged structure has exactly one imaginary frequency (the reaction-coordinate mode). This yields the geometry needed for an activation energy $\Delta E^{\ddagger}$ / $\Delta G^{\ddagger}$.
Instructions
- Parse arguments. If the
.xyzguess is missing, stop and ask. If--methodis missing, ask (defaultmopac, since every other backend requires Sella installed separately). - Run the engine:
# Env: anl_env
python skills/transition_state/scripts/run.py guess.xyz --method mopac
Arguments (port from the engine ts subcommand):
.xyzpath with the TS guess — required. For rotation barriers, a good guess is the energy-maximum frame of a conformational-analysis dihedral scan; otherwise build by hand.--method {xtb,mopac,dft,hf}— required (ask if missing; defaultmopac).--solvent <name>,--charge N,--mult N,--steps N(default 500).--no-verify-freq— skip the post-TS frequency verification.--out <path>(result JSON; default<stem>_ts_<method>.jsonin the run cwd).- DFT-only:
--tier {fast,standard,accurate},--functional <libxc>,--basis <name>.--density-fitenables RI density fitting (~3-10x faster SCF, ~0.1-0.8 mEh error); OFF by default — chemkit uses exact integrals (plain RKS/UKS, matching hand-run PySCF). - HF-only:
--basis <name>.
- Read the result JSON, written to
--out(default<stem>_ts_<method>.jsonin the run cwd). The engine also writes<basename>_ts_<method>.xyzwith the converged TS geometry; copy it next to the user's input. - Report: converged? and the optimizer status; heat of formation (kcal/mol, MOPAC only) and total energy (eV); the verification-frequency result — is this a valid TS? (yes iff
verify_freq.n_imaginary_modes == 1), the imaginary frequency (cm⁻¹) of the reaction-coordinate mode, and the number of imaginary modes (flag explicitly if 0 = collapsed to a minimum, or >1 = higher-order saddle); the path to the saved TS xyz; and every warning from the result JSON, reproduced verbatim — none dropped, summarized, or paraphrased; if there are no warnings, say so. - Recommend running intrinsic-reaction-coordinate next to confirm which reactant and product the TS connects. For publication geometries, re-refine the saddle with
--method dft --tier fast(DFT/HF TS searches are 10–100× slower and benefit greatly from a high-quality guess). See also the composite reaction-profile skill.
Result reading (token-efficient, required): run with
--out <path> --stdout pathso stdout is a one-line pointer, then read back only the fields you need withjq(always includewarningsand the convergence flag). Surface the live.outlog path the moment the run starts so the user cantail -fit. See RESULT-READING.md.
Skill name / discovery. This skill's engine subcommand is
ts; the namestransition-state,ts-searchare accepted aliases — any of them work. Do not invent flags: gas phase is the default (or--solvent none); there is no--phase/--environmentflag, and the geometry is the positional argument, not--geometry/--xyz/--input. If unsure of the exact name or flags, runchemkit --list-skillsorchemkit transition-state --help-json(or--help) to discover them instead of guessing.
Examples
# Env: anl_env
python skills/transition_state/scripts/run.py sn2_guess.xyz \
--method mopac --charge -1 --steps 500
Then: "See examples/ for a validated example with literature comparison."
Constraints
- Environment:
# Env: anl_envrequired for every code block. - Backend / optimizer:
--method mopacuses MOPAC's nativeTSkeyword and needs no extra install.--method xtb,--method dft, and--method hfuse the Sella saddle-search optimizer, which is not bundled — install once withpip install sella. If Sella is missing the task errors out immediately with a clear message. - Cost: DFT/HF TS searches are 10–100× slower than MOPAC; supply a high-quality guess and consider locating the saddle with
mopacfirst, then refining at DFT. - Convergence: If the MOPAC TS does not converge, the input is likely too far from the saddle — run a conformational-analysis scan to find an energy maximum as a better guess.
- Reporting policy: Never automatically provide experimental or literature data for comparison. Report only the values this calculation produced. Do not volunteer "accepted", measured, or reference values, and do not editorialize about agreement with experiment. Only include an experimental comparison if the user explicitly asks for one.
- Install / availability:
pyscfis required for--method dft/--method hf(pip install pyscf); MOPAC and xtb viaconda install -c conda-forge mopac xtb.
References
- Hermes, Sargsyan, Schaefer. "Accelerating Saddle-Point Searches" (Sella). J. Chem. Theory Comput. 2019, 15, 6536. https://doi.org/10.1021/acs.jctc.9b00869
- Bannwarth, Ehlert, Grimme. "GFN2-xTB." J. Chem. Theory Comput. 2019, 15, 1652. https://doi.org/10.1021/acs.jctc.8b01176
- Stewart. "PM7." J. Mol. Model. 2013, 19, 1. https://doi.org/10.1007/s00894-012-1667-x
- Sun et al. "PySCF." J. Chem. Phys. 2020, 153, 024109. https://doi.org/10.1063/5.0006074
- Larsen et al. "The Atomic Simulation Environment (ASE)." J. Phys.: Condens. Matter 2017, 29, 273002. https://doi.org/10.1088/1361-648X/aa680e
- National Institute of Standards and Technology. CODATA Internationally Recommended 2022 Values of the Fundamental Physical Constants; NIST. https://physics.nist.gov/cuu/Constants/ (accessed 2026-06-15). Source of the Hartree↔eV (1 Eh = 27.211386245981 eV) and eV→kcal/mol (23.060547830619) conversions used to report barrier energies.
Author: Evan S. Robles Contact: GitHub @evan-robles