@@ -11,7 +11,110 @@ markers; everything below GENERATED is rebuilt.
1111<!-- CURATED:START -->
1212## Highlights
1313
14- _ (curate hard-won records here — survives regeneration.)_
14+ ### JAX, numerics & performance
15+
16+ - [ xla-cpu-eigen-pool-deadlock] ( 2026/08/xla-cpu-eigen-pool-deadlock.md ) — a JAX
17+ CPU hang that is XLA's own Eigen pool re-entered by ducc0's FFT; one call is
18+ one lottery ticket, so reproduce in a loop and read the HLO.
19+ - [ jax-vmap-materialisation-hang] ( 2026/08/jax-vmap-materialisation-hang.md ) —
20+ "and then silence" is the silence of stderr alone: a SIGKILLed child loses its
21+ whole block-buffered stdout, so set ` PYTHONUNBUFFERED ` before quarantining.
22+ - [ numba-hst-curvature-matrix-speedup] ( 2026/08/numba-hst-curvature-matrix-speedup.md )
23+ — instrument before optimising, and never route a sliding PSF window through
24+ an FFT convolver unreversed; a symmetric test kernel hides the error.
25+ - [ multistart-nan-step-diagnostics] ( 2026/08/multistart-nan-step-diagnostics.md )
26+ — an eager ` jnp ` reduction outside the jit costs more than the host transfer
27+ it avoids; fuse per-step diagnostics into the jitted call.
28+ - [ regularization-jax-gradient-gaps] ( 2026/08/regularization-jax-gradient-gaps.md )
29+ — an inherited term that silently evaluates to zero is the worst failure mode,
30+ wrong but finite; a factorization fallback must be all-or-nothing.
31+ - [ cluster-f-jax-baseline-oom] ( 2026/05/cluster-f-jax-baseline-oom.md ) — verify a
32+ triage cluster against current main before mass-fixing: transient library
33+ state ages failures out faster than the report cycle.
34+
35+ ### Release, build & CI drift
36+
37+ - [ sub-312-install-tombstone] ( 2026/08/sub-312-install-tombstone.md ) — rehearse a
38+ release on TestPyPI: build isolation, the tenant firewall and a lagging JSON
39+ index all bite before upload, and resolution is read off the simple index.
40+ - [ intra-family-dep-floors] ( 2026/08/intra-family-dep-floors.md ) — an ad-hoc venv
41+ inherits the dev ` PYTHONPATH ` and imports the source tree, so it can falsely
42+ confirm an install fix; ` pip --dry-run ` cannot be read as a resolution.
43+ - [ release-validation-tri-state] ( 2026/08/release-validation-tri-state.md ) — an
44+ absent rehearsal is not a failed one; readiness prints a cached verdict over
45+ an embedded report copy, so re-ingesting changes nothing until re-aggregation.
46+ - [ smoke-surface-retime-sweep] ( 2026/08/smoke-surface-retime-sweep.md ) — a parked
47+ script cannot report its own rot: SLOW markers hide real errors, and a
48+ dispatch-only harness is green by absence until someone dispatches it.
49+ - [ script-size-guard-git-based] ( 2026/08/script-size-guard-git-based.md ) — a
50+ committed size snapshot rots; diff each changed script against its own blob at
51+ the merge-base instead, leaving no baseline to update and nothing to protect.
52+ - [ pre-build-stages-untracked-wip] ( 2026/08/pre-build-stages-untracked-wip.md ) —
53+ ` git add <dir>/ ` stages untracked files, so release automation that
54+ formats-then-stages publishes stray work; validate before the first push.
55+
56+ ### Samplers & inference
57+
58+ - [ nautilus-test-mode-degenerate-corner] ( 2026/08/nautilus-test-mode-degenerate-corner.md )
59+ — a degenerate posterior is degenerate in its weights, not its row count;
60+ guard corner plots on the Kish effective sample size.
61+ - [ ep-hierarchical-scale-collapse-guard] ( 2026/08/ep-hierarchical-scale-collapse-guard.md )
62+ — a guard's unit test can be green while the guard cannot fire; feed it the
63+ recorder's real output shape, and check the new tests fail on the base.
64+ - [ stored-sample-reconstruction-guard] ( 2026/08/stored-sample-reconstruction-guard.md )
65+ — a stored sample that current model validation rejects must recover to the
66+ next valid one or raise a typed exception, never a raw internal one.
67+ - [ heart-red-guarded-sample-escape] ( 2026/08/heart-red-guarded-sample-escape.md ) —
68+ a correct rejection guard is not enough while other paths reconstruct or
69+ re-serve the rejected sample; find every consumer before declaring it fixed.
70+ - [ clipper-validation-campaign] ( 2026/08/clipper-validation-campaign.md ) — budget
71+ decides the answer: grade the alive-versus-step curve rather than a survival
72+ percentage, and read an all-zero counter arm as broken, not as a null result.
73+ - [ delaunay-nan-probe-fix] ( 2026/08/delaunay-nan-probe-fix.md ) — a probe that
74+ builds pathological input through the public constructor inherits the public
75+ validation; poison below the boundary the guard defends.
76+
77+ ### Lensing science
78+
79+ - [ point-solver-magnification-plane-redshift] ( 2026/08/point-solver-magnification-plane-redshift.md )
80+ — in a multi-plane tracer the solver must evaluate at the source's own plane;
81+ two halves of one likelihood disagreeing means a half-wired argument.
82+ - [ group-subhalo-lens-dict] ( 2026/07/group-subhalo-lens-dict.md ) — a multi-galaxy
83+ script's deflector count comes from its own dataset's ` main_lens_centres.json ` ,
84+ and extra galaxies are a separate collection from main lens galaxies.
85+ - [ nfw-truncated-potential-accuracy] ( 2026/08/nfw-truncated-potential-accuracy.md )
86+ — where a profile has a published analytic potential, port it rather than
87+ re-tune the MGE approximation; ` grad(psi) = alpha ` is the check that finds it.
88+ - [ over-sample-trailing-one-to-two] ( 2026/07/over-sample-trailing-one-to-two.md ) —
89+ a lensed-source arc is never evaluated at sub-size 1: MGE Gaussians alias at
90+ 1x1 and degrade gradient searches, so adaptive schemes floor at 2x2.
91+ - [ adapt-image-cache-mask-validation] ( 2026/07/adapt-image-cache-mask-validation.md )
92+ — a stale adapt-image cache imitates an indexing bug; a completed pipeline
93+ never re-evaluates the likelihood, and ` Paths.restore ` re-extracts the zip.
94+ - [ adapt-linear-regularization] ( 2026/08/adapt-linear-regularization.md ) — correct
95+ a shipped regularization convention by adding sibling classes, never by
96+ mutating the existing ones: identifiers and aggregator reloads must stay valid.
97+
98+ ### Mind / Brain infrastructure
99+
100+ - [ agent-failure-modes] ( 2026/07/agent-failure-modes.md ) — the measured taxonomy
101+ of how agents fail here: refusals work where informs do not, and a guard's
102+ first live hour is where its false positives surface.
103+ - [ api-gate-clause-scope] ( 2026/07/api-gate-clause-scope.md ) — a ` PreToolUse ` gate
104+ must scope its interpreter state per shell clause; a latched flag scans a later
105+ clause's file arguments and blocks on symbols nothing was going to call.
106+ - [ spawn-drift-self-heal] ( 2026/08/spawn-drift-self-heal.md ) — hand-written test
107+ fixtures let the real workflow drift past the guard; point a generator's tests
108+ at the actual files they exist to protect.
109+ - [ registry-integrity-check] ( 2026/08/registry-integrity-check.md ) — a registry
110+ nobody retires entries from costs a whole task-selection session; check that
111+ every entry's prompt path resolves and contradicts no other lifecycle state.
112+ - [ worktree-claim-parser-forms] ( 2026/08/worktree-claim-parser-forms.md ) — cloud
113+ clones are shallow, so a history sweep silently returns nothing; check
114+ ` --is-shallow-repository ` before concluding anything from git history.
115+ - [ lifecycle-state-split] ( 2026/07/lifecycle-state-split.md ) — the Mind ran two
116+ parallel lifecycles, prompt files and the ledger, until draft/active/complete
117+ made the file's location the state; one source of truth per fact.
15118<!-- CURATED:END -->
16119
17120<!-- GENERATED:START — edit records, not this block; regenerate with `lifecycle.py index --apply` -->
0 commit comments