The vibe-qc preprint is on ChemRxiv, and the paper has been submitted to the Journal of Computational Chemistry.
Short version of what it describes: a general purpose, open source electronic structure code for molecules and solids, written almost entirely through generative-AI-assisted programming under human scientific control. Molecular Hartree-Fock through coupled cluster, multireference methods and excited states. Periodic Hartree-Fock and DFT in one, two and three dimensions at multiple k-points through three different Fock-build routes. Its own results format, its own viewer, its own cluster-aware job queue, and a regression suite of more than 15,000 tests.
That part I have written about before. What I want to write about here is the machine that checked it, and what that machine has been doing since I clicked submit.
The validation loop
The interesting engineering in this project is not the SCF code. It is the thing that decides whether the SCF code is allowed to make a claim.
Every capability the paper promotes to production status is compared, on a canonical system, against an independent implementation running out of process. One reference per method family, matched to the formalism: ORCA for molecular methods, OpenMolcas for complete-active-space work, PySCF for the periodic density-fitting route, CRYSTAL23 for the bipolar-expansion route, GPAW for Gaussian-and-plane-waves. The point of running them out of process is that the comparison is then between two programs rather than between a wrapper and itself.
Around that sits a bounded controller. Not an unconstrained multi-agent search, which I think is a bad idea for anything that produces numbers you intend to publish. The controller applies one written method-maturity policy to a release-paper inventory, and runs calculation, result retrieval, scientific judgement, defect repair and paper promotion as concurrent lanes. A lane pauses only for a direct dependency, so a row with a confirmed defect waits for its fixed release while unaffected rows keep moving. It is closed by default, it requires an explicit human activation, and when it runs out of evidence-gated work it writes down a blocker and stops rather than inventing something to do.
The part that earns its keep is the pre-comparison audit. Before two energies are allowed to be compared at all, the controller checks method, basis, ECP, charge, multiplicity, frozen-core policy, integration grids, fitting, integral mode, symmetry, k-point sampling and solver controls. Most of what looks like a disagreement between two quantum chemistry programs is not a disagreement. It is two different calculations wearing the same label.
Scientific authority stays human throughout. The loop cannot promote anything. It can only produce evidence and refuse.
What it found after the paper went out
I expected the loop to go quiet after submission. Instead the five days that followed were the most productive stretch of the project, and they changed my mind about what this kind of tooling is for.
A real defect in the two-dimensional route. The paper discloses, as a limitation, that the graphene and hexagonal boron nitride examples returned a nonphysical negative band gap. That turned out to be two bugs stacked on each other. The visible one was an occupation-assignment error. Underneath it was a formula-level defect in the k-resolved nuclear attraction of the slab route, where a Bloch sum was conjugated as a whole instead of only the pair transform inside it, so the code was evaluating the potential at minus k. With that fixed, monolayer boron nitride converges at default integer occupations in nine iterations to a 6.510 eV indirect gap, matching an independent PySCF calculation on the identical cell to 0.17 mHa, with the correct electron count at every k-point and no smearing.
The way that one surfaced is the part worth keeping. The same defect had two completely different presentations: the insulator failed closed and never converged, while the semimetal converged in eight iterations to a silently wrong answer 0.16 hartree off. If the route had defaulted to finite-temperature smearing, the broken Hamiltonian would have converged everywhere, over-bound, with a green checkmark. The question I had queued as a decision, whether to smear two-dimensional systems by default, dissolved into its own answer: no, because fail-closed was the only reason the bug was findable.
A mechanism I had described incorrectly. The paper attributes the mixed-density-fitting failure on heavy-core systems to a loss of positive definiteness in the overlap. That was refuted by measurement. The real mechanism is that the linear-dependence cut on the plane-wave-dressed metric was retaining eigenmodes below the metric’s own construction error, and the inversion then amplified pure noise by a factor of several thousand. Fixing it improves the neon case by a factor of 26 and eliminates a divergence of several hundred thousand hartree on magnesium oxide. The dense-core class stays honestly gated, because the cut that removes the divergence discards most of the auxiliary space.
The paper’s principal open task, completed during review. The manuscript names completing the fitted Coulomb tails as the principal open task of the periodic stack. A cutoff ladder run after submission showed the picture is two regimes rather than one. On dense-core cells the reciprocal-space tail is decisive and the real-space lattice cutoff does nothing. On light cells the roles are exactly reversed. With both axes converged, the comparison against PySCF reaches sub-microhartree agreement. And the shipped default already closes the dense-core case, which means the task the paper named as its principal open work was quietly finished by the release line while the paper sat in the submission queue.
A printed number withdrawn. A band-gap row in the supporting information turned out to be produced by a defective route. An independent PySCF calculation on the identical cell, with the basis contractions verified and the k-set asserted equivalent, put our density-fitted value 229 mHa over-bound, with the error concentrated in the conduction band rather than spread uniformly. The row is out of the revision, and the subsection now reports the withdrawal as the finding, because that is what it is: the gap it returned was perfectly plausible on its own, and only a cross-route comparison exposed it.
And the converse, which is the best result of the whole campaign. On diamond, PySCF matches the bipolar-expansion route eigenvalue by eigenvalue to 0.4 mHa across all sixteen levels, with the mandatory triple degeneracy held to 0.0007 mHa, while the density-fitted route on the same configuration matches neither convention and breaks that degeneracy by 165 mHa. The paper presents the bipolar route as the one held on an unresolved convention. Measured against an external code, it is the route that survives.
Five things I did not know before
Converged is not correct. A selected-CI ladder reported convergence while sitting on a flat, wrong line, because the default spin treatment could not represent the determinants the problem needed. Its memory estimator, meanwhile, was returning a bit-identical 324 terabytes regardless of the requested size. Both were reported by the code as normal operation.
A plausible observable clears nothing. One collapsed periodic run was wrong by 3.45 hartree in total energy and printed an entirely reasonable band gap. If you validate on the derived quantity alone, that calculation passes.
Reference programs fail too, and you have to check them. The largest single deviation in the matched-reference population turned out to be ORCA converging to a metastable solution 23 mHa above ground from its default guess, condemned by ORCA’s own stability analysis and reproducing our value exactly with a different guess. A CRYSTAL reference had landed 11 hartree wrong and been accepted. A systematic screen afterward found seven reference-side artifacts, and refuted four candidates as genuine deviations of ours, which are now filed openly. Reporting both halves is what makes the first half believable.
The dangerous defect class is well-formed halves. Four separate times, an input parsed cleanly, ran, and produced a plausible number while being internally impossible: a lattice matrix transposed against its convention, a cell paired with a third of its atoms, an electron count inconsistent with its own multiplicity. The nastiest instance was a cutoff option that the code accepted, echoed in its output, and never applied, which was only caught by setting the same knob on two routes of one cell and noticing that one of them did not move.
Label the epistemic status of every clause. I printed a sentence with one clause marked as measured and one marked as inferred. An hour later the inferred half was refuted. Because the boundary was written into the sentence, the correction cost one clause instead of a paragraph. That felt pedantic when I wrote it and looks like the cheapest insurance in the paper now.
What is next
Three things, in order.
A paper on the semiempirical stack and its cyclic cluster model, which is the largest block of attempted work in the validation database and the smallest block of finished work. It has a real blocker in front of it, and it is not a scientific one: two of the reference engines are not installed anywhere on the compute fleet, so several hundred comparisons cannot be attempted at all until they are staged. That is a good illustration of where the actual cost of cross-code validation sits.
Then a proper announcement for vibe-view, which has quietly become the part of this project I use most and have written about least.
Then the ab initio cyclic cluster model, which is the reason I started building any of this. The release paper is deliberately the foundation for it rather than an attempt at it.
The preprint is here: https://chemrxiv.org/doi/full/10.26434/chemrxiv.15007558/v1
The code, documentation and tutorials are at vibe-qc.com, under MPL-2.0. Independent checks are very welcome, and after the last two weeks I would say that goes double for the periodic side.

