Validation Status
validation_status() exposes the current validation ladder as typed Julia rows. It is a diagnostic table, not a comparator runner and not a fitting helper.
The public covered count is 7. That name is a claims-register label (see docs/design/06-public-claims-register.md and the R twin's matching register), not a function — there is no public_covered_count() in this package. It is also not this table's covered-row count: engine-covered is not the same as R-public-covered. Generated claim-boundary cells may still use the old identifier as a label; do not treat it as something you can call.
using HSquared
status = validation_status()
length(status)56[row.id => row.status for row in status]56-element Vector{Pair{String, String}}:
"V0-LOAD" => "covered"
"V1-PED" => "covered"
"V1-AINV-TINY" => "covered"
"V1-AINV-MRODE9" => "covered_external"
"V1-LIK" => "partial"
"V1-SPARSE-REML" => "partial"
"V1-SPARSE-REML-OPT" => "partial"
"V1-MME" => "partial"
"V1-SIRE-FIT" => "partial"
"V1-DENSE-OUT" => "partial"
⋮
"V6-NBINOM" => "partial"
"V6-BETABINOMIAL" => "partial"
"V6-PROBIT" => "partial"
"V6-ORDINAL" => "covered"
"V6-GAMMA" => "covered"
"V6-NS-H2" => "partial"
"V6-GGLLVM-DESC" => "partial"
"V6-GGLLVM-MARGINAL" => "partial"
"V6-GGLLVM-LAPLACE" => "partial"Current Rows
The table below is generated from validation_status() by tools/write_validation_status_page.jl (run from docs/make.jl before makedocs). Do not edit the generated block by hand — change the ladder in src/validation_status.jl and regenerate.
<!– BEGIN GENERATED validation-status-table –>
<!– Generated by tools/write_validation_status_page.jl from validation_status(); do not edit by hand. –>
| id | capability | phase | status | claim boundary |
|---|---|---|---|---|
V0-LOAD | package loading | Phase 0 | covered | Package loads; this is not modelling evidence. |
V1-PED | pedigree normalization | Phase 1 | covered | Pedigree validation utility only; no fitting claim. |
V1-AINV-TINY | sparse Ainv tiny checks | Phase 1 | covered | Direct sparse Ainv utility; not a fitted animal model. |
V1-AINV-MRODE9 | Mrode9 pedigree inverse comparator | Phase 1 | covered_external | Pedigree inverse agreement only; not fitted Mrode output validation. |
V1-LIK | Gaussian likelihood tiny checks | Phase 1 | partial | Dense validation evaluator only; not production sparse fitting. |
V1-SPARSE-REML | sparse REML identity | Phase 1 | partial | Supplied-variance REML objective only; no variance-component estimation. |
V1-SPARSE-REML-OPT | sparse REML validation optimizer | Phase 1 | partial | Experimental REML-only validation optimizer; not AI-REML, not the default fit path, and not production sparse fitting. |
V1-MME | Henderson MME supplied-variance solve | Phase 1 | partial | Supplied variance components plus a published Mrode Example 3.1 animal-model anchor and one cross-estimator JWAS agreement probe; JWAS is Bayesian/MCMC, so this is agreement only, not REML parity, and Example 3.1 is not variance-component estimation. |
V1-SIRE-FIT | fitted sire-model native target (Mrode Ch.4) | Phase 1 | partial | Serialized Julia-native fitted sire-model TARGET plus a committed self-consistency pin (a distinct-route integrity check, NOT external evidence); the engine heritability() accessor is documented as mislabelled for sire-model specs; no external comparator run yet, no parsed public R sire-model formula path, and no covered status. |
V1-DENSE-OUT | dense output extractors | Phase 1 | partial | Experimental dense low-level outputs only; accuracy is derived from reliability. |
V1-SELINV-PEV | sparse selected-inversion PEV/reliability | Phase 1 | partial | Experimental sparse PEV path; exact at the L+Lᵀ pattern (diagonal/PEV exact); the DEFAULT extractor method argument (:dense) is unchanged and still dense — callers/bridge code must pass method = :selinv explicitly for the sparse path (which result_payload already does). |
V1-METAFOUNDER | supplied-Γ metafounder relationship/inverse | Phase 1 | partial | Experimental supplied-Γ relationship construction, supplied-variance animal-model MME, and single-step utilities/wrappers; Γ is an INPUT, never estimated; dense/validation-scale; no R-facing formula or payload, external comparator, or covered claim. |
V1-PCG | iterative (PCG) MME solver | Phase 1 | partial | Experimental iterative MME solver validated to MATCH the direct solve for both the single-effect (solve_animal_model_pcg) and the K-independent-effect (solve_multi_effect_pcg, v0.8-S2) MME, with a matrix-free operator (no C assembly) validated to MATCH the assembled path. The pre-declared v0.8-S2 matrix-free-vs-direct SOLVE benchmark HAS RUN (DRAC fir; feasible to q=10⁶, near-linear, 19× over direct at q=50k) — a machine-specific SUPPLIED-VARIANCE-SOLVE measurement, NOT a full REML fit and NOT the default fit path. The iterative-solver foundation for the production sparse path at q→10⁶ where direct Cholesky is fill-limited. |
V1-AI-REML | average-information REML estimator | Phase 1 | covered | Experimental Gaussian-only REML estimator; the AI form is exact for the Gaussian linear mixed model but not for non-Gaussian/Laplace models (which need observed-information Newton); known-truth recovery and the published-anchor match are validated in the R lane via the bridge. |
V1-MATFREE-REML | matrix-free Monte-Carlo single-effect REML estimator | Phase 1 | partial | EXPERIMENTAL and STOCHASTIC; fixed probes make the iteration repeatable for a supplied seed; small relative variance-component changes do not prove score stationarity, uniqueness, a global optimum, or parameter precision. trace_mcse measures trace-probe uncertainty only, excludes PCG error, and is not parameter uncertainty. Engine-internal, REML-only, two-component, Gaussian-only, OPT-IN by direct call, NOT the public default and NOT reachable through fit_animal_model on this branch (pinned in CI since 2026-09-01, not merely structural), not wired into the R bridge. S5 establishes recovery-to-truth AT THE FROZEN GATE FIXTURE at q=25,000 and nowhere else; everything else on this row is cross-estimator AGREEMENT, not recovery. S5 PASS does NOT flip capability, does NOT authorise :auto routing, and does NOT close S6. A covered flip additionally owes S6 + a spawned Rose audit (G8/S4) + maintainer sign-off (G10/S3); this engine-only row leaves public_covered_count at the current R-public count of 7. |
V1-MRODE-FIT | fitted animal-model outputs vs a published estimate | Phase 1 | covered_external | Fitted animal-model recovery against a published external estimate; validated via the R-lane bridge, not a Julia-native bundled fixture. |
V1-COMPARATORS | external fitted-model comparators | Phase 1 | covered_external | REML variance-component / h2 agreement against one CRAN comparator (sommer) on one anchor; not multi-package or multi-trait parity. |
V1-HERIT-CI | variance-component covariance and heritability interval | Phase 1 | partial | Route-specific H0 interval evidence only: univariate pedigree h² delta/profile/bootstrap and σ²a profile/bootstrap are directional-conservative (not nominally calibrated; bootstrap worst 0.924); σ²a delta/Wald is experimental-only (0.897); all other routes remain separate or unmeasured. The K-effect sparse surface (#352: multi-effect variance-component and ratio standard errors, the summed-ratio interval) is on this row: #366 Totoro + DRAC N=2000 bank (plus N=500 precursor; interior + low_pe + near_pe + near_va; design 58) with claim class directional-conservative-bank — NOT nominal ~95% calibration; row stays partial; public_covered_count stays 7. REML-only, Gaussian; univariate pedigree evidence is dense/validation-scale; K-effect evidence is sparse N=500+N=2000 (Totoro and Narval), still not nominal; no coverage guarantee. |
V2-GRM | genomic relationship matrix (VanRaden G) | Phase 2 | partial | Experimental construction utility only; no genomic prediction, fitting, single-step, or marker-effect claim. |
V2-GINV | regularized genomic inverse (Ginv) | Phase 2 | partial | Construction utility only. Its inverse can supply existing GBLUP and single-step routes, but this row makes no fitted-model or comparator claim. |
V2-GRM-GPU | GPU VanRaden G/Ginv (CUDA extension) | Wave F (G1) | partial | Agreement + benchmark RUN (tamia 4× H100, jobs 352612 / 360780; Narval A100, job 64637092; GPU G/Ginv ≡ CPU to ~1e-14; Float64 gate 3–7e-15). A numerical ACCELERATION of the CPU genomic ops, NOT a new estimand and NOT the general backend dispatcher (backend_info() :cuda stays :planned); the opt-in Float32 path is numerically safe for prediction but only ~1.2× faster (Float64 default). The CPU↔GPU AGREEMENT is architecture-portable (re-run on Narval A100: device-resident GBLUP β/GEBV ~1e-15, Float64 gate 3.0e-15); the TIMINGS are per-machine — no competitive A100-vs-H100 claim; nothing promoted to covered. |
V2-GBLUP | genomic BLUP supplied-variance solve | Phase 2 | partial | Supplied-variance genomic solve plus a Julia-native/R-consumed comparator target only; no genomic variance-component estimation, no single-step, no external comparator parity. |
V2-APY | APY sparse-structured genomic inverse (large genotyped populations) | Phase 2 | partial | Validation-scale supplied-G APY STRUCTURE only: the exact-reduction identity (core=all) is machine-precision; the sub-full-core case is an APPROXIMATION whose accuracy is demonstrated but not gate-calibrated; caller-supplied core, dense return, no scale benchmark, no external comparator, not the public default. |
V2-SNPBLUP | SNP-BLUP / GBLUP equivalence | Phase 2 | partial | Supplied-variance VanRaden method-1 marker model plus a Julia-native/R-consumed comparator target only; no external comparator, no weighted/Bayesian marker priors. |
V2-SSHINV | single-step H-inverse construction | Phase 2 | covered | Covered (engine V2-SSHINV only) = H-scale σ²a and σ²e at validation scale, ordinary defaults (τ=ω=1, blend=ridge=0), teaching kernel G = A₂₂ + 0.05 I. Opt-in. Point-estimate. H-scale h² = σ²a / (σ²a + σ²e) is reported, not claim-gated (e9676014). Construction AGHmatrix AGREE is H / H⁻¹ only (0b03d67e). Estimator evidence is the n≫6 PASS (8e6e038b / 0533e9da) plus recovery-substitution (e6d0573d); preGSf90 / blupf90+ stay in missing. Mrode Ch.11 NO-ANCHOR. R single_step() stays opt-in partial. Ordinary no-control route stays held. public_covered_count stays 7. The 0.8.0 version reference in this historical gate was superseded by the experimental 0.9.0 release. |
V2-GREML | genomic REML variance-component estimation | Phase 2 | covered | Covered = the supplied-Ginv REML estimator at validation scale (engine opt-in); does NOT cover G-construction (V2-GRM stays experimental) or production sparse-G fitting. The separately validated narrow R genomic GREML route requires explicit target = "genomic" and is covered at validation scale; it does NOT establish SNP-BLUP, single-step, genomic intervals, or production robustness. |
V3-REPEAT | repeatability / permanent-environment supplied-variance solve | Phase 3 | partial | Supplied-variance two-random-effect solve only; no R-facing model-spec, engine-internal. |
V3-REPEAT-REML | repeatability REML variance-component estimation | Phase 3 | partial | Dense validation-scale REML over three variance components; no committed recovery test, no uncertainty intervals, no external comparator, no R-facing model-spec. |
V3-TWOEFFECT | general two-random-effect MME (common environment, maternal) | Phase 3 | partial | Supplied-variance, two INDEPENDENT random effects only; no correlated maternal genetic, no R-facing model-spec. |
V3-TWOEFFECT-REML | two-effect REML (common-environment / maternal estimation) | Phase 3 | covered | Dense validation-scale REML, COVERED (experimental, validation-scale, opt-in; NOT the public default) on the doc-16 substitutable gate — the recovery harness + a PRE-DECLARED bias/MCSE gate (PASS) + one external blupf90+ same-estimand comparator leg. "Covered" = the engine correctly implements two-effect REML, NOT small-sample accuracy on σ1². An ASYMPTOTIC ratio interval now exists (two_effect_ratio_interval, logit-delta, boundary-flagged, NOT coverage-calibrated); a CALIBRATED ratio interval, correlated maternal genetic, and the R-facing model-spec remain owed (covered does NOT retire them). |
V3-NEFFECT-REML | arbitrary-N independent-random-effect REML | Phase 3 | covered | Dense validation-scale REML, INDEPENDENT effects only (no correlated / direct–maternal 2×2 G), COVERED (experimental, validation-scale, opt-in; NOT the public default) on the doc-16 substitutable gate — reductions + a PRE-DECLARED 48-seed bias/MCSE gate (PASS, 48/48, |bias|≤2·MCSE) + one sommer same-estimand REML comparator (AGREE ~8e-5). "Covered" = the engine correctly implements arbitrary-N INDEPENDENT-effect REML on the tested design, NOT small-sample accuracy of any single component; the production sparse AI-REML K-component estimator and the R surface remain owed (covered does NOT retire them). public_covered_count unchanged (engine-covered ≠ R-public-covered). |
V3-NEFFECT-SPARSE | sparse K-component AI-REML (scale path for the N-effect model) | Phase 5 | partial | Sparse AI-REML K-component ESTIMATOR that exists and is verified (deterministic reductions) to reduce EXACTLY to the dense N-effect REML optimum and to fit_ai_reml at K=1; experimental, REML-only, Gaussian, INDEPENDENT effects only (no correlated / direct–maternal 2×2 G). Sparse-vs-dense scaling is now MEASURED (pre-declared benchmark, 2026-07-02, totoro 1-core; predeclaration 662663ed BEFORE the run, harness byte-identical; sim/phase5_sparse_benchmark_{K3,K1}.tsv, checkpoint docs/dev-log/recovery-checkpoints/2026-07-02-phase5-sparse-benchmark.md): sparse ≤ dense at ALL overlap sizes (min-time 122×–692× at q=200–1000, monotone, sign-stable; dense converged=true, same optimum ≤3.3e-5), K=1 near-linear (log-log slope ~1.0, R²=0.99, feasible to q=50k), K=3 ~quadratic (slope ~2.25; q≥20k infeasible in-budget — the multi-effect env-group fill-in). This is an ESTIMATOR-vs-ESTIMATOR (AI-Newton ~8–11 iters vs NelderMead ~250–276 f_calls) MACHINE-SPECIFIC measurement — NOT an isolated-linear-algebra / GPU / production / accuracy / portable claim, and NOT the public default fit path. public_covered_count untouched. |
V3-NEFFECT-MATFREE-FIT | matrix-free Monte-Carlo REML FIT (large-q scale path for the N-effect model) | v0.8 | partial | Experimental matrix-free stochastic REML score fixed-point fit for Gaussian independent effects. Historical predeclared exact-estimator agreement and scale evidence is recorded above, with historical blupf90 comparisons at q=860 and q=4060; these do not establish current-source recovery across designs or an external oracle in the exact-infeasible regime. Fixed probes give repeatability for a supplied seed. The convergence flag reports small relative variance-component changes, not proof of stationarity or a unique/global optimum. trace_mcse measures trace-probe uncertainty, excludes PCG error, and is not parameter uncertainty. Multi-effect loglik is NaN when disabled; when requested it is a stochastic full-REML estimate with SLQ and PCG error. Its MCSE excludes finite-Lanczos bias and PCG error. The matrix-free AI calculation uses PCG accuracy; intervals are asymptotic and uncalibrated. Remaining debts include interval coverage and the large-fixture exact-infeasible external comparator. Fresh evidence is needed for new source/scale/design recovery claims. Engine-internal and opt-in; not the public default; this row leaves the current R-public count at 7. |
V3-RR-REML | random-regression REML (coefficient covariance K_g + residual estimation) | Phase 3 | covered | Dense validation-scale REML, COVERED (experimental, validation-scale, opt-in; NOT the public default) on the doc-16 substitutable gate — a PRE-DECLARED 48-seed bias/MCSE gate (PASS, 48/48, all four |bias|≤2·MCSE) + one sommer 4.4.5 leg() same-estimand REML comparator (AGREE ≤1.9e-5). "Covered" = the engine correctly implements k=2 random-regression REML (intercept + ONE slope, K_g 2×2, Gaussian, homogeneous residual, D=I₂ normalized Legendre), NOT small-sample accuracy of any single K_g entry. k=2 only (k≥3 experimental → reduced-rank/FA post-v1.0), no PE term, no heterogeneous residual, dense/validation-scale. h²(t) is a CURVE, never scalar (scalar heritability() on this result errors); the PE-overstatement caveat applies when a permanent-environment term is absent. (x|g) raw slopes NOT covered. An R surface (rr(covariate, order)) exists and is opt-in covered at k=2; engine-covered ≠ R-public-covered layering: the 4th public_covered_count is the R-public surface (see 06-public-claims-register.md). Convention lock (basis, K_g reporting, h²-curve, frozen (x|g), k≥3): docs/design/22-rr-convention-lock.md. |
V4-MULTIVARIATE | multivariate (multi-trait) animal model (supplied covariance) | Phase 4 | partial | Supplied-covariance with a design shared across traits; handles missing-trait records and Julia-side result accessors, but does not estimate G0/R0 and has no R-facing multivariate model-spec or bridge payload change. |
V4-DIRECT-MATERNAL | direct–maternal genetic model (2×2 G, first correlated random effect) | Phase 4 | covered | Dense validation-scale REML, COVERED (experimental, validation-scale, OPT-IN; NOT the public default fit path) on the doc-16 substitutable gate — reductions/oracle (G1/G2, test/runtests.jl:5987) + a PRE-DECLARED 48-seed bias/MCSE gate (PASS, 48/48 converged, all four |bias|≤2·MCSE; σ²_am 1.65·MCSE the largest; max cond 157, max |r_am| 0.80 — no boundary rides; predeclaration 76f6c67e BEFORE the run, harness byte-identical) + one sommer 4.4.5 covm() same-estimand REML comparator (AGREE; σ_dm 1.1e-2, other entries ≤4.2e-3 rel.diff; ABSOLUTE-variance + column-identified, NOT correlation-only). "Covered" = the engine correctly implements direct–maternal 2×2-G REML (correlated [a_d; a_m]over one relationshipA+ homogeneous σ²e) on the tested confound-broken design, NOT small-sample accuracy of any single component. INTERPRETATION FENCE (Willham): a negativer_amis real and expected; direct h² (σ²_ad/σ²_P) is NOT "the heritability" — the selection-relevant total additive variance involvesσ_dm(σ²_P = σ²_ad + σ²_am + σ_dm + σ²e); the R surface returns the labelled triple (direct h², m², Willham total h²_T), never a bare scalar. |r_am|→1 rides on converged (near-boundary fits self-report converged=false). SINGLE relationship A (NOT the maternal-A2 generalization); dense/validation-scale n≤~1000. An R surface (target="direct_maternal" / maternal_genetic()) is opt-in covered; engine-covered ≠ R-public-covered layering — the 5th public_covered_count is the R-public surface (see 06-public-claims-register.md). A 2nd INDEPENDENT same-estimand REML comparator is now DISCHARGED: blupf90+ 2.60 AIREMLF90 2×2-G (OPTIONAL mat, 2026-07-02) converged from a NEUTRAL start to the engine optimum ~3e-5 on σ²_ad/σ²_am/σ_dm/σ²e (dam-identification verified — dm.csv dam_id== pedigree dam for all 960 records; ABSOLUTE-variance, column-identified). Asymptotic delta-method SEs/CIs are available viadirect_maternal_interval(VCs +r_amFisher-z + Willham triple; observed-information FD-Hessian; uncalibrated — corroborated by BLUPF90's AI-based SEs to ~4–12% (max 11.5%); calibrated coverage still owed). Evidence:docs/dev-log/recovery-checkpoints/2026-07-01-direct-maternal-covered-evidence.md+2026-07-02-direct-maternal-blupf90-comparator.md. |
V4-MV-REML | multivariate REML (genetic/residual covariance estimation) | Phase 4 | covered | Experimental dense/validation-scale multivariate REML; correctness is self-consistency + univariate-reduction validated and adversarial-reviewed (robustness findings fixed), Julia-side accessors wrap existing fields, the univariate result_payload() is unchanged and multivariate_result_payload now exposes a bridge-ready :unstructured/:diagonal payload (rotation-free; lowrank/fa loadings not bridged), opt-in Julia and R-lane cold-start recovery studies show no detectable bias at validation scale, and the serialized target plus comparator protocol now has one reproduced external sommer 4.4.5 same-estimand comparator leg, an R-lane Mrode Example 5.1 supplied-covariance BLUP/MME anchor, Bayesian MCMCglmm agreement evidence, and a tested BLUPF90 preflight harness; COVERED at experimental, validation-scale, OPT-IN status (NOT the public default) on the doc-16 substitutable gate — a pre-declared 48-seed cold-start recovery gate passed (all six |bias| ≤ 2·MCSE, EBV ≈ 0.90), read as NO DETECTABLE bias and never unbiased (G[1,1] is −5.7%/1.57·MCSE below truth, REML finite-sample). "Covered" means the engine correctly implements multivariate unstructured REML (sommer same-estimand parity ≤ 8e-5), NOT that it is small-sample-accurate on V_A. SCOPE OF VALIDITY (where recovery is claimed): two-trait unstructured REML on the covered half-sib q=80/n=240 design plus the W1 balanced/moderate broader cells — additive vs residual covariance separable with ≥3 records (or a single record only at base r_g), per-trait h² symmetric or mildly asymmetric, r_g ∈ {0.10, 0.42, 0.70}; outside it two characterized scope edges apply — the n-vanishing G[1,1] bias (≈−9.7% at q=80 → −1.0% at q=800, MCSE-detectable at larger n) and a single-record × extreme-r_g identifiability limit (W1 triage 46235637, 5/8 at 50 seeds; C8 confirm job 47925486, 16×500, 14/16 pass, only rg_090_rec1/rg_095_rec1 fail, base_inside clean — characterization, not a covered-scope widen; that historical study did not change the current public_covered_count of 7). Standing limitations: the executed per-seed calibration protocol did not pass (per-replicate sampling variance of G), recovery is not coverage-calibrated, the covered recovery basis is a single half-sib q=80/n=240 design and one (G,R) truth point (now cross-checked by TWO independent same-estimand REML comparators — sommer 4.4.5 and blupf90+ 2.60, both agreeing ~1e-5), and the engine inverts Ainv densely so deep-inbreeding / high-condition pedigrees are out of scope; the R twin now reaches this fitter on its DEFAULT cbind() route. The R-public multivariate route is a separate promotion from this engine row; the current overall R-public count is 7. R↔engine element-wise parity at the promotion fixture is DISCHARGED LOCALLY but NOT CI-BACKED (hsquared A26, test-multivariate-engine-parity.R: element-wise to 1.7e-14 from the engine start and 2.0e-5 from the bridge's identity start, plus pedigree-permutation invariance, all inside tolerances pre-declared in a strictly earlier commit) — Tier-1 parity CI is not yet live on the R lane (no workflow provisions Julia, so the parity legs skip rather than run), so read it as local evidence, not a CI-verified claim. NO-ANCHOR DISCLOSURE (Standard-Tier covered-flip gate item 2): the R-lane Mrode Example 5.1 leg is a SUPPLIED-G0/R0 BLUP/MME anchor — fixed effects and animal BLUPs GIVEN known covariances — and therefore does NOT anchor the ESTIMATED G0/R0 this row covers; no published textbook anchor for estimated multivariate G0/R0 exists, so the estimated-covariance evidence is comparator- and recovery-based (sommer 4.4.5, blupf90+ 2.60, cold-start recovery), never textbook-anchored (precedent: hsquared docs/design/43-genomic-greml-g0.md §1). |
V4-FA | structured multivariate genetic covariance (diag/lowrank/fa) | Phase 4B | covered | Covered engine-row (experimental, validation-scale, opt-in, Julia API only) for the S4 cell t=4, K=1, ledermann_slack > 0, min(ψ̂) ≥ 1e-4: rotation-invariant G, R, and interior ψ point estimates only. Ledermann slack is a generic dimension check, not a pointwise identifiability test; covariance-map rank falls at registered sparse-loading points, and bounded plug-in expected-information checks exist; observed curvature, uniqueness inference, and interval calibration remain unassessed. Not loadings or uniqueness inference. Copy-returning structured-metadata accessors expose existing fields locally; returned loadings are sign-canonicalized under a sign-only convention but not rotation-identified. The bounded R route returns derived per-trait h² and r_g; broad validation of those quantities and evolvability on FA G remain outside this covered engine row (V4-EVOLVE stays partial). WOMBAT absent (recovery-substitution d3e9ca09; not AGREE). No R-facing cov=fa syntax; the R twin has one bounded four-trait rank-one Gaussian FA expert-control route, still partial. Phase 4B calibration (2026-06-14; did not pass) remains named history; S4 8/10 ok_recovery is the covered gate. public_covered_count stays 7. |
V4-BRIDGE | multivariate diagonal/unstructured bridge payload | Phase 4 | partial | multivariate_result_payload serves the rotation-free :unstructured/:diagonal; the companion structured_genetic_payload serves the rotation-gated :lowrank/:factor_analytic via rotation-INVARIANT functionals of G (reconstructed genetic_covariance, genetic_pca eigenstructure, mean_evolvability, FA genetic_uniqueness Ψ), never raw loadings (test/runtests.jl). No external comparator parity; the R twin has a bounded FA expert-control route; broader formula activation remains cross-lane. |
V4-EVOLVE | evolvability / G-matrix geometry (Hansen & Houle 2008) | Phase 4 | partial | Descriptive G-matrix geometry only — rotation-invariant (functions of G, not the loadings) so unaffected by the FA rotation convention; NOT a selection-response prediction and NOT a fitting/estimation claim; metrics on an estimated G inherit all V4-MV-REML/V4-FA estimation caveats. |
C10-LRT | reusable nested-model LRT helper (df + single-boundary chi-bar correction) | Phase 4 / inference | partial | Asymptotic-theory helper only; the single-boundary 50:50 mixture is textbook asymptotics, NOT recovery-/coverage-validated; no model-selection/AIC wrapper and no R bridge in this slice. |
V5-MARKER-FIXED | fixed-effect single-marker scan | Phase 5 | partial | Fixed-effect Gaussian screening utility with row-aligned scan-table, GWAS/QTL/eQTL labelled table wrappers, marker-effect, marker-variance-contribution, marker-map-backed Manhattan, regional marker-window data, nominal returned-marker-set significance summary, QQ, and inflation diagnostic helpers only, using supplied residual variance plus approximate Wald p-values, Bonferroni/BH adjustments, LOD-equivalent scores, Manhattan data, regional data, nominal raw/Bonferroni/BH significance counts, QQ data, and a λGC diagnostic over the returned marker set; gwas_table(), qtl_table(), and eqtl_table() wrappers only label already-computed direct scan tables and do not run GWAS/QTL/eQTL workflows; no regional_plot() or fine-mapping activation, no formula-driven mixed-model GWAS/QTL claim, no expression-wide eQTL claim, no calibrated/correlated-marker genome-wide threshold claim, no p-value calibration claim, no calibrated PVE or model R² claim, no R formula term activation, no bridge payload change, and no comparator evidence. |
V5-MARKER-MIXED | supplied-variance mixed-model marker scan | Phase 5 | partial | Dense validation-scale supplied-variance Julia utility plus post-fit bridge payload/fixture only; R scan-result table views are thin views of existing hs_gwas objects only; relationship correction is by the supplied marginal covariance and tested by GLS identities, but there is no variance-component estimation, no p-value calibration claim, no calibrated PVE/model R² claim, no R formula activation, no map-annotated GWAS/QTL/eQTL table workflow, and no comparator evidence. |
V5-MARKER-LOCO | leave-one-group-out marker scan construction and selection | Phase 5 | partial | Dense validation-scale LOCO construction and supplied-matrix selection helpers only; LOCO precision construction uses VanRaden-plus-ridge identities and the scan uses supplied variance components, but there are no public LOCO defaults, no variance-component estimation, no p-value calibration claim, no calibrated PVE/model R² claim, no R formula activation, no bridge payload change, and no comparator evidence. |
V5-MARKER-THRESHOLD | permutation-calibrated genome-wide significance threshold | Phase 5 | covered | COVERED is SCOPED to the EXACT per-dataset add-one permutation rule for a FIXED-EFFECT/intercept-only single-marker scan (genome_wide_marker_scan / R gwas(genome_wide = TRUE)), type-I-CONTROL only, on the tested LD architecture + designs; established by the doc-16 substitutable gate (validation #203/#204 + production REBUILD #207 type-I gates PASSED, PLINK max(T) comparator #205 executed, R activation hsquared #113 live-verified, Rose PROMOTE). NOT covered / fenced out: the relatedness-corrected mixed-model/LOCO genome-wide null, power/coverage, broader-LD/covariate-adjusted calibration, the (1-alpha) quantile rule (anti-conservative, #202) and the fixed-null-reuse simulation shortcut (mildly anti-conservative), and the map-annotated formula-level scan API. NOT the public default (the current R-public covered count stays 7); the permutation driver + calibration/comparator evidence are opt-in/outside CI. |
V5-GENOMIC-QTL | genomic, marker, QTL, and eQTL validation | Phase 5 | planned | No broad genomic/QTL/eQTL validation claim; direct Julia marker-screening utilities are experimental and tracked separately. |
V6-LAPLACE | non-Gaussian Laplace + variational (VA) animal model (Phase 6 foundation) | Phase 6 | partial | Experimental dense/validation-scale non-Gaussian Laplace+VA engine; the Gaussian-limit reduction and per-family kernels are validated, and a MarginalMethod dispatch plus legacy nongaussian_result_payload shape and serialized parity fixture exist. The R twin has an opt-in versioned three-field bridge for only Poisson/Binomial log-link/logit cells with exactly one intercept; it reports no calibration or external-comparator result, is not the public default, and is not covered. That private envelope is the only non-Gaussian scope of the paired 0.9 delivery; retained legacy Phase-6 engine rows below remain visible for transparency, not as a 0.9 public-scope expansion. The non-Gaussian Laplace value approximates an integral over fixed effects under a flat measure in the supplied X coordinates and genetic effects under a normalized pedigree Gaussian density, using the joint observed-curvature Hessian at their mode. It is not conventional profiled-fixed-effect Laplace-ML, REML, or AI-REML. The historical fit_laplace_reml name is retained for compatibility; exact REML applies to its Gaussian reduction. The integral must be proper; local convergence alone does not prove this. The variational route uses the separately qualified hybrid variational-plus-Laplace objective; its non-Gaussian value is not conventional ML, REML, or a general lower-bound guarantee. |
V6-NBINOM | non-Gaussian negative-binomial (NB2, log link) family + overdispersion (H1) | Phase 6 | partial | Experimental, dense/validation-scale, INTERNAL family reachable via the historically named exported fit_laplace_reml(...; family = :nbinom); The non-Gaussian Laplace value approximates an integral over fixed effects under a flat measure in the supplied X coordinates and genetic effects under a normalized pedigree Gaussian density, using the joint observed-curvature Hessian at their mode. It is not conventional profiled-fixed-effect Laplace-ML, REML, or AI-REML. The historical fit_laplace_reml name is retained for compatibility; exact REML applies to its Gaussian reduction. The integral must be proper; local convergence alone does not prove this. This retained legacy engine route is outside the 0.9 three-field delivery; Laplace-only; the sigma_a2 magnitude is reported-not-gated at one record/animal; five seeds do not establish its cause; not wired into the R path, not the public default, and not a covered claim. |
V6-BETABINOMIAL | non-Gaussian beta-binomial / overdispersed-logit family (H2) | Phase 6 | partial | Experimental, dense/validation-scale, INTERNAL family reachable via the historically named exported fit_laplace_reml(...; family = :beta_binomial); The non-Gaussian Laplace value approximates an integral over fixed effects under a flat measure in the supplied X coordinates and genetic effects under a normalized pedigree Gaussian density, using the joint observed-curvature Hessian at their mode. It is not conventional profiled-fixed-effect Laplace-ML, REML, or AI-REML. The historical fit_laplace_reml name is retained for compatibility; exact REML applies to its Gaussian reduction. The integral must be proper; local convergence alone does not prove this. This retained legacy engine route is outside the 0.9 three-field delivery; the ρ→0 Binomial reduction and conditional kernels are validated and a fitted sigma_a2-at-fixed-ρ path exists, but ρ is NOT estimated, there is no variational path, no interval, and no external-comparator evidence; it is neither exported, wired into R, the public default, nor a covered claim. |
V6-PROBIT | non-Gaussian probit / threshold (liability-scale) family (H3) | Phase 6 | partial | Experimental, dense/validation-scale, asymptotic, INTERNAL family reachable via the historically named exported fit_laplace_reml(...; family = :bernoulli_probit); The non-Gaussian Laplace value approximates an integral over fixed effects under a flat measure in the supplied X coordinates and genetic effects under a normalized pedigree Gaussian density, using the joint observed-curvature Hessian at their mode. It is not conventional profiled-fixed-effect Laplace-ML, REML, or AI-REML. The historical fit_laplace_reml name is retained for compatibility; exact REML applies to its Gaussian reduction. The integral must be proper; local convergence alone does not prove this. This retained legacy engine route is outside the 0.9 three-field delivery; binary single-threshold, Laplace-only; the five-seed estimates are reported but do not establish population bias or cause; the tested profile fixture is flat and its interval endpoints clamp, without establishing a family-wide profile shape; no observation-scale h² is surfaced (liability scale); it is neither exported, wired into R, the public default, nor a covered claim. |
V6-ORDINAL | non-Gaussian ordered-categorical probit (ordinal threshold) family (H3→T1) | Phase 6 | covered | Experimental, dense/validation-scale, INTERNAL family. The reported non-Gaussian value approximates an integral over fixed effects under a flat measure in the supplied X coordinates and genetic effects under a normalized pedigree Gaussian density, using the joint observed-curvature Hessian at their mode. It is not conventional profiled-fixed-effect Laplace-ML, REML, or AI-REML. The historical fit_laplace_reml name is retained for compatibility; exact REML applies to its Gaussian reduction. The July external comparison is cross-objective numerical evidence and does not establish same-objective parity. The integral must be proper; local convergence alone does not prove this. This retained legacy engine route is outside the 0.9 three-field delivery. The family object + the :ordered_probit joint-estimation path both exist and are engine-covered (scoped, validation-scale), but engine-covered ≠ R-public-covered: the RESPONSE type is NOT exported, the R surface is NOT wired, so it is NOT the public default and the current R-public covered count stays 7. ≥3-category σ²a is weakly identified without informative data (safety-rail-bounded). |
V6-GAMMA | non-Gaussian Gamma (log-link, positive continuous) family (T-Gamma) | Phase 6 | covered | Experimental, dense/validation-scale, INTERNAL family. The reported non-Gaussian value approximates an integral over fixed effects under a flat measure in the supplied X coordinates and genetic effects under a normalized pedigree Gaussian density, using the joint observed-curvature Hessian at their mode. It is not conventional profiled-fixed-effect Laplace-ML, REML, or AI-REML. The historical fit_laplace_reml name is retained for compatibility; exact REML applies to its Gaussian reduction. The July external comparison is cross-objective numerical evidence and does not establish same-objective parity. The integral must be proper; local convergence alone does not prove this. This retained legacy engine route is outside the 0.9 three-field delivery. The family object + the :gamma joint-estimation path both exist and are engine-covered (scoped, validation-scale), but engine-covered ≠ R-public-covered: the RESPONSE type is NOT exported, the R surface is NOT wired, so it is NOT the public default and the current R-public covered count stays 7. |
V6-NS-H2 | non-Gaussian latent- and observation-scale heritability (Nakagawa–Schielzeth / de Villemereuil) (H7) | Phase 6 | partial | Experimental, dense/validation-scale; the transform is exact in its closed-form limbs and anchored to an independent quadrature oracle, but it inherits uncertainty in latent-scale sigma_a2 (single-trial Bernoulli is flagged information_limited; the flag does not establish bias direction or cause); the QGglmm external comparator is RUN + AGREES (logit / binary-probit / Poisson / binomN / ordinal-K>2 / Gamma-data; ≤4.5e-6) but an MCMCglmm comparator and a Fisher/Falconer sign-off on the decomposition are still owed. Exported but experimental — not the public default, not a covered claim. |
V6-GGLLVM-DESC | genetic-GLLVM latent-structure descriptors + Gaussian latent solve (supplied loadings) (#50 slices 1–2) | Phase 6 | partial | Supplied-covariance only — Λ/Ψ/R0 are NOT estimated (that is slice 3), and only rotation-INVARIANT functionals of Σ_g are returned (never the raw loadings). The Gaussian latent solve's numerical correctness reduces to multivariate_mme (V4-MV). The first foundation steps of the genetic GLLVM (#50, slices 1–2); the GLLVM-style animal models capability stays planned. Nothing promoted to covered. |
V6-GGLLVM-MARGINAL | genetic-GLLVM non-Gaussian K-factor latent Laplace marginal (supplied loadings) (#50 slice 2) | Phase 6 | partial | Experimental, dense/validation-scale, SUPPLIED loadings (NOT estimated by this kernel), shared or per-trait families, balanced/fully-observed Y only; INTERNAL (not exported, mirroring the single-factor kernel's visibility). A bounded R Poisson-log, T=3, rank-2 expert-control route calls the fitted kernel below; this supplied-loadings evaluator is not exposed directly through R. Independent reductions validate the K>1 genetic latent calculation, but an external same-objective comparator is pending. General GLLVM-style animal-model grammar and coverage remain planned. Nothing promoted to covered. |
V6-GGLLVM-LAPLACE | genetic-GLLVM latent-G_lat fit — integrated Laplace objective; Gaussian REML reduction (#50 slice 3) | Phase 6 | partial | The historical fit_gllvm_laplace_reml name is retained for compatibility. Its non-Gaussian objective integrates fixed effects under a flat measure and genetic effects under a pedigree Gaussian density, then applies a Laplace approximation; it is not ordinary non-Gaussian ML or REML. Exact REML applies only to the Gaussian reduction. Experimental, dense/validation-scale (low-rank + factor-analytic G_lat), shared or per-trait families, balanced/fully-observed Y; INTERNAL (not exported). A bounded R Poisson-log, T=3, rank-2 expert-control route calls this fitter; broader R formula/model grammar remains closed. A correctness-validated ESTIMATOR (reductions + optimum-improvement + Gaussian self-consistency) has recovery evidence across FOUR scenarios: two positive Poisson (rank-1 + rank-2+correlations), one Bernoulli reported-not-gated (mean unsigned rel 0.54), and one Binomial-20 positive (mean rel 0.10); the contrast does not establish bias direction or cause. FA(+Ψ) and mixed-family recovery, an external same-objective comparator, and coverage remain open. A separate frozen 50-seed ordinary-start Poisson T=3/K=2 replay was rerun against the pinned current fitter source and passed 50/50 using the same seeds as the September primary run; this is one-cell reproducibility/usability evidence, not independent replication or calibration. The earlier four-scenario June harness used true-loading starts and is separate evidence. General GLLVM-style animal models stay planned; nothing promoted to covered. |
<!– END GENERATED validation-status-table –>
Boundary
covered_external means the evidence is recorded in the R twin or another external validation path and is not independently bundled as Julia test data. For example, the Mrode9 row records the R twin's optional nadiv::Mrode9 / nadiv::makeAinv() comparison against Julia pedigree_inverse().
That evidence covers pedigree inverse agreement only. It does not cover fitted Mrode variance components, EBVs, heritability, reliability, PEV, accuracy, or external ASReml/BLUPF90/DMU/WOMBAT/sommer/MCMCglmm fitted-model parity.
The V1-MME row records the shared supplied-variance Henderson MME fixture mirrored from the R twin at head ca8bce1. The fixture pins the pedigree inverse, fixed effects, EBVs, fitted values, and simple h2 = 0.6 for supplied variance components sigma_a2 = 1.2 and sigma_e2 = 0.8.
Julia now also bundles a published Mrode (2014) Example 3.1 animal-model anchor at the stated variance ratio (sigma_a2 = 20, sigma_e2 = 40). The test pins the published EBVs for animals 1-8 and the invariant male-minus-female sex contrast. This is supplied-variance textbook evidence: it does not estimate variance components and does not by itself establish same-estimand REML comparator parity.
Julia also bundles a Mrode9-shaped supplied-variance fixture using the 12-animal nadiv::Mrode9 pedigree structure. It pins Ainv, ML/REML likelihood values, fixed effects, EBVs, fitted values, PEV, reliability, derived accuracy, and h2 at supplied variance components. This strengthens the supplied-variance equation and extractor checks, but it is still not fitted Mrode output validation, variance-component estimation, AI-REML, or external fitted-model parity.
The opt-in JWAS runner now executes outside CI from the separate comparator/ environment. On 2026-06-21, JWAS 2.3.6 ran the serialized single-trait fitted target as a Bayesian/MCMC model (chain_length = 50000, burnin = 10000, seed 20260620) and aligned all 20 animal EBVs against the REML target (cor = 0.999, max absolute difference 0.1103). This is an agreement probe only. JWAS and REML are different estimators, so the row remains partial pending same-estimand fitted-output comparator evidence.
Julia now also bundles test/fixtures/genomic_gblup_snpblup_target/ as a #49 genomic comparator target: a positive-definite supplied-frequency VanRaden G, its Ginv, intercept-only phenotype data, supplied variance components, GBLUP GEBVs, and SNP-BLUP marker effects/GEBVs. The CI test recomputes the fixture and pins GBLUP/SNP-BLUP agreement. hsquared PR #84 (52507da) mirrors and consumes that fixture in a Julia-free R test, but this is still internal route evidence, not an external comparator run.
The Phase 4 multivariate rows are Julia-engine rows only. The accessor helpers wrap existing result fields locally and do not change the R bridge payload. The unstructured REML row now has opt-in Julia and R-lane cold-start recovery evidence with no detectable bias at validation scale, plus one reproduced external sommer 4.4.5 comparator leg on the serialized two-trait target fixture. The R lane also records a published Mrode Example 5.1 supplied-covariance BLUP/MME anchor and a MCMCglmm Bayesian agreement probe. Those are useful evidence, but only the sommer leg is same-estimand REML parity; ASReml, BLUPF90, DMU/WOMBAT, or equivalent same-estimand parity remains open. The BLUPF90/AIREMLF90 packet has a tested preflight for numeric BLUPF90-ready files, an animal ID map, and a skip-safe opt-in runner, but that is setup hygiene only until an executable run and aligned estimates are recorded. The structured covariance row covers diag/low-rank/factor-analytic engine metadata, local copy-returning metadata accessors, and opt-in recovery checks with explicit seed-list reporting. The rotation-free diagonal payload and structured_covariance_parity fixture are banked for bridge work; lowrank/fa raw loading exposure remains blocked. The rotation-identifiability decision note records sign-only metadata as the current convention. The multivariate recovery calibration protocol was executed and did not pass under the predeclared thresholds. Deterministic log triage now records whether failed seeds exceeded G-only, R-only, or both thresholds, but broad multi-seed calibration remains validation debt; full rotation and interpretation remain validation debt.