Audit — doc-health gap surface
Generated by docs/atlas/generate.jl — a pure VIEW over the *_registry.jl claims + the static test/INVENTORY.jsonl AST scan. No test is executed and no src is run; test/INVENTORY.jsonl is regenerated in-place (idempotently) from that static scan; fetch/@register untouched. Assurance labels are PROVISIONAL: residuals / confidence are not shown yet (RES not wired). Badges reflect the committed test AST, not the latest CI run — a hub can read green while its @test is red between regenerations. @sweep = a graceful regime-resolution gap, not card omission.
Substrate-derived audit of actionable gaps. Each section is a concrete to-do list: an item here is either a hand-fixable doc/code issue or a tracked physics task. This page is the one place to look for "what's not great yet".
1. Models without CONVENTION header
The CI lint enforces # CONVENTION headers on new model files, but older files predate the lint. These models show an absence note on their per-model page; backfilling adds a one-block comment.
Has source file but missing/unparseable CONVENTION block (1):
Source file not found at src/models/<class>/<Model>/<Model>.jl (2) — model may live elsewhere or be defined inline:
2. Quantities without auto-extracted Definition
Quantities whose struct X[{params}] <: AbstractQuantity docstring wasn't matched by the regex extractor (likely defined as bare struct X end without <: AbstractQuantity, or with alternate formatting). Adding the supertype + docstring makes them appear on the per-quantity page automatically.
29 quantities:
ChargeGapEnergyFermiVelocityFreeEnergyLiebRobinsonVelocityLuttingerVelocityMagnetizationXMagnetizationXLocalMagnetizationYMagnetizationYLocalMagnetizationZMagnetizationZLocalMassGapRenyiEntropyResidualEntropySpecificHeatSpinGapSusceptibilityXXSusceptibilityYYSusceptibilityZZThermalEntropyTopologicalEntanglementEntropyVonNeumannEntropyXXCorrelationXXStructureFactorYYCorrelationYYStructureFactorZZCorrelationZZStructureFactor
3. Orphan calc notes (matched to no model)
docs/src/calc/*.md whose filename doesn't substring-match any registered model. Likely true derivation notes that describe a method (e.g. calabrese-cardy-obc-vs-pbc.md, ad-thermodynamics-from-z.md) rather than a model, but worth scanning to confirm.
4. Models registered but with 0 hubs
5. INVENTORY cards with no matching registry claim
Verify cards exist for (M, Q, BC) triples that no @register claims. Split into two subcategories: universality-class cards are intentionally card-only (no model-side @register applies); the rest are real registry gaps for follow-up.
5a. Universality-class card-only (by design — not a gap)
21 universality-class hub(s):
E8/E8Spectrum/InfiniteMeanField/CriticalExponents/InfiniteMinimalModel/CentralCharge/InfiniteMinimalModel/ConformalWeights/InfiniteUniversality/CasimirEnergyCorrection/OBCUniversality/CasimirEnergyCorrection/PBCUniversality/CentralCharge/InfiniteUniversality/CriticalExponents/InfiniteUniversality/GrowthExponents/InfiniteUniversality/MeanRatio/InfiniteUniversality/RenyiEntropy/InfiniteUniversality/RenyiEntropy/OBCUniversality/RenyiEntropy/PBCUniversality/SpectralFormFactor/InfiniteUniversality/TracyWidom/InfiniteUniversality/VonNeumannEntropy/InfiniteUniversality/VonNeumannEntropy/OBCUniversality/VonNeumannEntropy/PBCUniversality/WignerSurmise/InfiniteWZWSU2/CentralCharge/InfiniteWZWSU2/ConformalWeights/Infinite
5b. Real orphan card hubs (need @register or removal)
2 real orphan card hub(s):
f_model/FreeEnergy/InfiniteTFIM/LoschmidtRateFunction/Infinite