원클릭으로
add-simulation-test
Add ADEMP-style simulation-based parameter-recovery tests for GLLVM.jl models using Test.jl and StableRNGs.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Add ADEMP-style simulation-based parameter-recovery tests for GLLVM.jl models using Test.jl and StableRNGs.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
Add a new non-Gaussian response family to GLLVM.jl with Laplace-approximated likelihood, link functions, Julia multiple-dispatch wiring, ADEMP recovery test, and documentation. Use when extending Phase 3 (non-Gaussian families) beyond the Gaussian-only v0.1.0 pilot.
Mandatory closure routine for every completed GLLVM.jl task or phase. Writes a compact report to docs/dev-log/after-task/YYYY-MM-DD-<task>.md covering goal, files changed, tests added, benchmark numbers, R-parity verdict (vs gllvmTMB), JET/Allocs/Aqua verdicts, Rose audit verdict, remaining risks, and the next command. Enforces the drmTMB-grade Definition of Done the maintainer asked for: implementation + tests + docs + examples + check-log + after-task audit + Rose audit verdict.
Audit and improve GLLVM.jl figures, Documenter.jl pages, simulation reports, and CairoMakie recipes when plots look poor, inconsistent, misleading, too sparse, missing raw or replicate data, or need Florence, Rose, Pat, Fisher, and Grace visual QA before being called done.
Review Julia GLLVM likelihoods and parameterizations before merging.
Use when working on Julia package hygiene — Project.toml, exports, Aqua.jl, JET.jl, Allocs.jl, version bumps, Manifest stability.
Review and improve GLLVM.jl prose in README files, tutorials under docs/src/, Documenter pages, after-task reports, release notes, design docs, and manuscript-style text for clarity, concrete claims, stable terminology, citations, and reader fit.
SOC 직업 분류 기준
| name | add-simulation-test |
| description | Add ADEMP-style simulation-based parameter-recovery tests for GLLVM.jl models using Test.jl and StableRNGs. |
Use this skill when adding or extending recovery tests for the Gaussian (and
future GLM-family) GLLVM models in this repo. Tests live under test/ and are
run via julia --project=. test/runtests.jl (not Pkg.test(); see CLAUDE.md).
Test.jl: wrap each scenario in @testset and assert with @test /
@test_throws.StableRNGs.StableRNG(seed) for every stochastic step — not
Random.MersenneTwister. StableRNGs is reproducible across Julia minor
versions; MersenneTwister is not, so a seeded MersenneTwister test can
silently change tally on a Julia upgrade.ENV["GLLVM_PERF_TESTS"] (the existing
pattern in this repo) so routine runtests.jl stays fast and deterministic.simulate.jl (or a local
helper) with a StableRNG(seed).fit_gaussian_gllvm, em_fit_phylo, …).Optim.converged, gradient norm,
non-degenerate Λ).GLLVM_PERF_TESTS).@test_throws: non-PSD Σ_y target, ragged
Λ, phylogeny / data row mismatch, negative σ_eps in user-supplied init.Recovery tests are the maintainer-approved way to verify that the symbolic
likelihood (closed-form Gaussian marginal; sparse phylo augmented-state;
Felsenstein contrasts; edge-incidence Q = B·W·Bᵀ) and the in-code likelihood
agree. When you add a new representation or a Laplace step for a non-Gaussian
family, add a recovery test that fits from a StableRNG(seed)-simulated draw
and checks the point estimate against the truth to a tolerance that is tight
enough to fail if the symbolic form has been transcribed wrong. Do not widen
the tolerance to make a failing test pass — fix the bug.
n = p, p = 1 (degenerate latent), and p large
(≥ 100, behind GLLVM_PERF_TESTS).d = 1 and d > 1 with rotation-invariant checks
(compare ΛΛᵀ, not Λ entry-wise, unless you fix the rotation).@test_throws: tree-data row mismatch, bad init,
non-conformable Λ.For each scenario, report or assert:
mean(theta_hat) - theta_true.EM-Louis vs dense SE gate, currently at 1e-2 — see
test/runtests.jl history).Follow ADEMP (Morris, White & Crowther 2019, Stat Med) — explicitly
state the Aims, Data-generating mechanism, Estimands, Methods,
and Performance measures in the test header — and the transparent-
reporting items of Williams, Nakagawa & Hector 2024 (Methods Ecol Evol):
state the random-seed mechanism (StableRNG(seed)), the number of replicates
R, and the Monte-Carlo SE of every performance estimate. ADEMP cells that
correspond to long sweeps belong behind GLLVM_PERF_TESTS; the cells in
routine runtests.jl should be small, seeded, and fast (≤ few seconds each).
Random.MersenneTwister or Random.seed!() instead of StableRNG
(breaks across Julia versions).runtests.jl (gate behind
GLLVM_PERF_TESTS).