Hull Desk - notice The app's agent prompt is derived from the agent skill "pymatgen" (@k-dense-ai/pymatgen, skill version 1.3, last reviewed 2026-07-23), section "Local phase diagrams" and its script scripts/phase_diagram_generator.py, in the repository k-dense-ai/scientific-agent-skills by K-Dense Inc. https://github.com/k-dense-ai/scientific-agent-skills (skills/pymatgen) The skill's front matter declares the MIT license. No text of the skill is redistributed verbatim; the prompt was rewritten for this app. Kassis, T., Agarwal, V., He, Y., Patel, D. & Brueckner, A. M. (2026). Scientific Agent Skills: A Library of Procedural Knowledge for Research Agents. arXiv:2609.00065. https://doi.org/10.48550/arXiv.2609.00065 The in-browser analysis (chem.js, hull.js, hullkit.js) is an independent JavaScript implementation of the definitions pymatgen 2026.5.4 / pymatgen-core 2026.7.16 uses: Composition(formula, strict=True) and reduced_formula, PhaseDiagram (elemental references, formation_energy_tol 1e-11), get_form_energy_per_atom, get_e_above_hull and get_decomposition, and the strict dataset schema and JSON report of phase_diagram_generator.py. The convex hull is found with a linear program (revised simplex) rather than Qhull. No pymatgen, NumPy, SciPy or Qhull code is included. The Pauling electronegativities used to order formulas are pymatgen's Element.X values. It was checked against pymatgen 2026.5.4 running the skill's own phase_diagram_generator.py on: four Materials Project entry sets from pymatgen's test files (Mn-O, Fe-O, Li-Fe-O and all 859 Li-Fe-P-O entries), 600 random entry sets of one to five elements (polymorphs, unreduced formulas, positive formation energies, missing elemental references, invalid query compositions) and hand-built degenerate sets (collinear and coplanar points on the hull, exact energy ties), plus 24 malformed datasets for the error messages - about 121,000 compared values in all. The only disagreement found is which of two notations of the same composition point (FeO and Fe0.5O0.5) Qhull keeps when their energies tie exactly; the page flags such cases (hull_tie). Deliberate difference: the isotope symbols D and T are refused (pymatgen folds them into H in a way that overwrites rather than adds amounts). Example data: Materials Project computed entries as stored in pymatgen's repository test files test-files/entries/Mn-O_entries.json and test-files/entries/Li-Fe-P-O_entries.json (pymatgen is MIT licensed, Copyright (c) 2011-2012 MIT & The Regents of the University of California, through Lawrence Berkeley National Laboratory). Energies are ComputedEntry.energy (uncorrected energy plus the stored corrections), unmodified, except in the "mixed" example, where two Mn-O entries (mp-19395, mp-1172875) deliberately carry their uncorrected GGA+U energy to show what mixing correction schemes does to a hull. Materials Project content is offered under the Creative Commons Attribution 4.0 License (https://legacy.materialsproject.org/terms). Jain, A., Ong, S. P., Hautier, G., Chen, W., Richards, W. D., Dacek, S., et al. (2013). Commentary: The Materials Project: A materials genome approach to accelerating materials innovation. APL Materials 1, 011002. https://doi.org/10.1063/1.4812323 pymatgen: Ong, S. P., Richards, W. D., Jain, A., Hautier, G., Kocher, M., Cholia, S., et al. (2013). Python Materials Genomics (pymatgen): A robust, open-source python library for materials analysis. Computational Materials Science 68, 314-319. https://doi.org/10.1016/j.commatsci.2012.10.028