Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 22 additions & 3 deletions batches/2026-08-31-am.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,12 @@
- shift: overnight 29th→31st, pre-framework
- lane: local-dev
- review-minutes-planned: 121 (packet estimate; no dispatch-time plan existed)
- migrated-from: PyAutoMind/batches/2026-08-31-am.md
- migrated-from: PyAutoMind/batches/2026-08-31-am.md (deleted from the Mind 2026-09-03 by
mind-post-cortex phase 2; this file and the packet/review beside it are now the record of
record — the Mind original survives only in that repo's git history)
- usage-window-at-dispatch: n/a (pre-framework)
- heart-ack: n/a (pre-framework — the runs were hand-dispatched before the batch doctrine existed)
- expected-effects: n/a (the field did not exist at dispatch)
- members:
- failed_submissions_342008_10: phases/inference_programme/failed_submissions_342008_10.md — 342008, 342009, 342010 — 1 — ready
- smc_probe_342018: phases/inference_programme/smc_probe_342018.md — 342018 — 25 — ready
Expand All @@ -22,8 +27,22 @@
- review-minutes-actual: excluded — workshop session (the framework was built and polished mid-review); the first calibration point is the next batch
- notes: |
Transcribed into the Cortex grammar on 2026-09-01 (birth epic phase 4). The Mind
original stays intact at PyAutoMind/batches/2026-08-31-am.md with a `- moved-to:`
line — a verbatim history has to live somewhere live.
original carried a `- moved-to:` line and was kept live beside this one until
2026-09-03, when mind-post-cortex phase 2 deleted the Mind trio (record, packet and
review) as science residue. The three facts that transcription had dropped were
ported here first and are recorded below; the packet HTML was already byte-identical
and the Mind review file was a strict subset of the Cortex one.

From the Mind original, ported 2026-09-03: the pre-framework `usage-window-at-dispatch`,
`heart-ack` and `expected-effects` `n/a` values are now header lines above. The Mind
record's eighth member `euclid-phase2-pr46` (a **dev** retrospective on the merged
PR #46, judged `structure-ok`, 35 review-minutes) is named here and stays untranscribed
as a science member, for the reason given below. The Mind's own tweaks-queued note
listed the three follow-ups that became its queue entries — the subhalo follow-up wave,
the euclid docs/structure tidy and the numba-vs-JAX-sparse intake — all of which the
review file below already records. The packet defect fixed same-day was Mind commit
6491b09c (the `TEMPLATE.md` standalone-document rule); the rewind it references is
Mind commit 2fb40b45 / autolens_profiling#200.

Two shape differences from the Mind record, both forced by the Cortex grammar:
the Mind's single member `subhalo-pl_eff-342027_12` covered two lenses on one
Expand Down
4 changes: 2 additions & 2 deletions dashboard.html
Original file line number Diff line number Diff line change
Expand Up @@ -265,8 +265,8 @@
</table>
<a id="epics"></a><h2>Epics <a class="mdsrc" href="https://github.com/PyAutoLabs/PyAutoCortex/blob/main/epics.md">markdown version</a></h2><p class="muted">Long-running programmes whose science half lives here; each card links its development half in the Mind.</p>
<div class="task"><button class="copy" data-cmd="Work out where the Cortex half of the epic euclid-dr1-prep stands from phases/euclid/ and tell me what its next phase is." aria-label="Copy the Claude command">📋</button><p><b>prepare the Euclid DR1 modelling pipeline, then prove it on real DR1 lenses</b><span class="facets"> — Mind half: <code>PyAutoMind/epics.md#euclid-dr1-prep</code></span><span class="facets"> — ledger: <code>phases/euclid/</code></span><span class="facets"> — science half opens at phase 4, gated on the 3a PR and the 3b issue; 5–7 planned behind it</span></p></div>
<div class="task"><button class="copy" data-cmd="Work out where the Cortex half of the epic jax-inference-profiling stands from autolens_profiling/results/notes/inference/PROGRAMME.md and tell me what its next phase is." aria-label="Copy the Claude command">📋</button><p><b>profile and certify the JAX inference stack — samplers, meshes, reference baselines</b><span class="facets"> — Mind half: <code>PyAutoMind/epics.md#jax-inference-profiling</code></span><span class="facets"> — ledger: <code>autolens_profiling/results/notes/inference/PROGRAMME.md</code></span><span class="facets"> — Phase 1 RULED 2026-09-02 (R-20260902-01, accept scoped to the four positions-on rows) and closed out; certified InferenceRefs_v1 set = 6 baselines (mge_fp64, mge_pos_fp64, delaunay_nn_pos, slam_source_pix_pos, slam_source_pix_nn_pos, delaunay_pos); Step 2 filed 2026-09-02 as phase 12 (RAL 342241, tasks 11–13, positions-on refs for pixelization / knn / delaunay_matern; submitted); Step 3 ruled 2026-09-02 — phases 13/14/15 accepted (R-20260902-08/09/10), Gates A, B pt 1, B pt 2 re-called on the legacy MGE evidence (Gate A's Delaunay leg struck); next: rule phase 12 when pulled, then Phase 5 positions-on (penalty factor to be decided — 1e5 recommended per Gate B pt 2)</span></p></div>
<div class="task"><button class="copy" data-cmd="Work out where the Cortex half of the epic graphical-ep stands from PyAutoMind/research/graphical_ep/ep_campaign.md and tell me what its next phase is." aria-label="Copy the Claude command">📋</button><p><b>expectation propagation as the scalable alternative to graphical joint fits</b><span class="facets"> — Mind half: <code>PyAutoMind/epics.md#graphical-ep</code></span><span class="facets"> — ledger: <code>PyAutoMind/research/graphical_ep/ep_campaign.md</code></span><span class="facets"> — both science phases planned; the projects are dormant and the campaign's</span></p></div>
<div class="task"><button class="copy" data-cmd="Work out where the Cortex half of the epic jax-inference-profiling stands from autolens_profiling/results/notes/inference/PROGRAMME.md and tell me what its next phase is." aria-label="Copy the Claude command">📋</button><p><b>profile and certify the JAX inference stack — samplers, meshes, reference baselines</b><span class="facets"> — Mind half: <code>none — the Mind entry was retired 2026-09-03 (mind-post-cortex phase 2); the</code></span><span class="facets"> — ledger: <code>autolens_profiling/results/notes/inference/PROGRAMME.md</code></span><span class="facets"> — Phase 1 RULED 2026-09-02 (R-20260902-01, accept scoped to the four positions-on rows) and closed out; certified InferenceRefs_v1 set = 6 baselines (mge_fp64, mge_pos_fp64, delaunay_nn_pos, slam_source_pix_pos, slam_source_pix_nn_pos, delaunay_pos); Step 2 filed 2026-09-02 as phase 12 (RAL 342241, tasks 11–13, positions-on refs for pixelization / knn / delaunay_matern; submitted); Step 3 ruled 2026-09-02 — phases 13/14/15 accepted (R-20260902-08/09/10), Gates A, B pt 1, B pt 2 re-called on the legacy MGE evidence (Gate A's Delaunay leg struck); next: rule phase 12 when pulled, then Phase 5 positions-on (penalty factor to be decided — 1e5 recommended per Gate B pt 2)</span></p></div>
<div class="task"><button class="copy" data-cmd="Work out where the Cortex half of the epic graphical-ep stands from PyAutoMind/draft/research/graphical_ep/ep_campaign.md and tell me what its next phase is." aria-label="Copy the Claude command">📋</button><p><b>expectation propagation as the scalable alternative to graphical joint fits</b><span class="facets"> — Mind half: <code>PyAutoMind/epics.md#graphical-ep</code></span><span class="facets"> — ledger: <code>PyAutoMind/draft/research/graphical_ep/ep_campaign.md</code></span><span class="facets"> — both science phases planned; the projects are dormant and the campaign's</span></p></div>
<div class="task"><button class="copy" data-cmd="Work out where the Cortex half of the epic cluster-strong-lensing stands from PyAutoMind/draft/feature/autolens/source_cluster_arc.md and tell me what its next phase is." aria-label="Copy the Claude command">📋</button><p><b>the Source &amp; Cluster arc — cluster mass modelling and pixelized source inference</b><span class="facets"> — Mind half: <code>PyAutoMind/epics.md#cluster-strong-lensing</code></span><span class="facets"> — ledger: <code>PyAutoMind/draft/feature/autolens/source_cluster_arc.md</code></span><span class="facets"> — one science phase (arc phase 11), planned behind the arc's phase 10</span></p></div>
<a id="projects"></a><h2>Projects <a class="mdsrc" href="https://github.com/PyAutoLabs/PyAutoCortex/blob/main/projects.yaml">markdown version</a></h2><p class="muted">The science body map — where each project lives, what syncs it and where its witness lands.</p>
<table class="map">
Expand Down
6 changes: 3 additions & 3 deletions dashboard.md
Original file line number Diff line number Diff line change
Expand Up @@ -137,18 +137,18 @@ Work out where the Cortex half of the epic euclid-dr1-prep stands from phases/eu

</details>

<details><summary>📋 <b>profile and certify the JAX inference stack — samplers, meshes, reference baselines</b> — Mind half: <code>PyAutoMind/epics.md#jax-inference-profiling</code> — ledger: <code>autolens_profiling/results/notes/inference/PROGRAMME.md</code> — Phase 1 RULED 2026-09-02 (R-20260902-01, accept scoped to the four positions-on rows) and closed out; certified InferenceRefs_v1 set = 6 baselines (mge_fp64, mge_pos_fp64, delaunay_nn_pos, slam_source_pix_pos, slam_source_pix_nn_pos, delaunay_pos); Step 2 filed 2026-09-02 as phase 12 (RAL 342241, tasks 11–13, positions-on refs for pixelization / knn / delaunay_matern; submitted); Step 3 ruled 2026-09-02 — phases 13/14/15 accepted (R-20260902-08/09/10), Gates A, B pt 1, B pt 2 re-called on the legacy MGE evidence (Gate A's Delaunay leg struck); next: rule phase 12 when pulled, then Phase 5 positions-on (penalty factor to be decided — 1e5 recommended per Gate B pt 2)</summary>
<details><summary>📋 <b>profile and certify the JAX inference stack — samplers, meshes, reference baselines</b> — Mind half: <code>none — the Mind entry was retired 2026-09-03 (mind-post-cortex phase 2); the</code> — ledger: <code>autolens_profiling/results/notes/inference/PROGRAMME.md</code> — Phase 1 RULED 2026-09-02 (R-20260902-01, accept scoped to the four positions-on rows) and closed out; certified InferenceRefs_v1 set = 6 baselines (mge_fp64, mge_pos_fp64, delaunay_nn_pos, slam_source_pix_pos, slam_source_pix_nn_pos, delaunay_pos); Step 2 filed 2026-09-02 as phase 12 (RAL 342241, tasks 11–13, positions-on refs for pixelization / knn / delaunay_matern; submitted); Step 3 ruled 2026-09-02 — phases 13/14/15 accepted (R-20260902-08/09/10), Gates A, B pt 1, B pt 2 re-called on the legacy MGE evidence (Gate A's Delaunay leg struck); next: rule phase 12 when pulled, then Phase 5 positions-on (penalty factor to be decided — 1e5 recommended per Gate B pt 2)</summary>

```
Work out where the Cortex half of the epic jax-inference-profiling stands from autolens_profiling/results/notes/inference/PROGRAMME.md and tell me what its next phase is.
```

</details>

<details><summary>📋 <b>expectation propagation as the scalable alternative to graphical joint fits</b> — Mind half: <code>PyAutoMind/epics.md#graphical-ep</code> — ledger: <code>PyAutoMind/research/graphical_ep/ep_campaign.md</code> — both science phases planned; the projects are dormant and the campaign's</summary>
<details><summary>📋 <b>expectation propagation as the scalable alternative to graphical joint fits</b> — Mind half: <code>PyAutoMind/epics.md#graphical-ep</code> — ledger: <code>PyAutoMind/draft/research/graphical_ep/ep_campaign.md</code> — both science phases planned; the projects are dormant and the campaign's</summary>

```
Work out where the Cortex half of the epic graphical-ep stands from PyAutoMind/research/graphical_ep/ep_campaign.md and tell me what its next phase is.
Work out where the Cortex half of the epic graphical-ep stands from PyAutoMind/draft/research/graphical_ep/ep_campaign.md and tell me what its next phase is.
```

</details>
Expand Down
13 changes: 9 additions & 4 deletions epics.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,12 @@ Schema per entry — the Mind's, plus one field:
- notes: <free text>
```

`- mind-half:` names the Mind entry by slug; the Mind's entries carry the
reciprocal `- cortex-half:`. The four split epics below moved their science
`- mind-half:` names the Mind entry by slug, or `none` when the epic moved
whole. The Mind carried a reciprocal `- cortex-half:` key until 2026-09-03,
when mind-post-cortex phase 2 removed it — nothing read it, and the pointer
now lives in the Mind entry's own `notes:` as a "Science half:" clause. This
file's `- mind-half:` stays the machine-readable half of the join.
The four split epics below moved their science
halves here in phase 4 of the birth epic (2026-09-01): `euclid-dr1-prep`
phases 4, 5, 6a and 6b (renumbered here as Cortex phases 4–7);
`jax-inference-profiling` whole; the science halves of `graphical-ep` phases
Expand All @@ -45,7 +49,8 @@ This file is ledger: it auto-merges (`scripts/ledger_merge.py`).
## jax-inference-profiling
- title: profile and certify the JAX inference stack — samplers, meshes, reference baselines
- ledger: autolens_profiling/results/notes/inference/PROGRAMME.md
- mind-half: PyAutoMind/epics.md#jax-inference-profiling
- mind-half: none — the Mind entry was retired 2026-09-03 (mind-post-cortex phase 2); the
whole programme lives here, and its slices ship as autolens_profiling issues/PRs
- status: Phase 1 RULED 2026-09-02 (R-20260902-01, accept scoped to the four positions-on rows) and closed out; certified InferenceRefs_v1 set = 6 baselines (mge_fp64, mge_pos_fp64, delaunay_nn_pos, slam_source_pix_pos, slam_source_pix_nn_pos, delaunay_pos); Step 2 filed 2026-09-02 as phase 12 (RAL 342241, tasks 11–13, positions-on refs for pixelization / knn / delaunay_matern; submitted); Step 3 ruled 2026-09-02 — phases 13/14/15 accepted (R-20260902-08/09/10), Gates A, B pt 1, B pt 2 re-called on the legacy MGE evidence (Gate A's Delaunay leg struck); next: rule phase 12 when pulled, then Phase 5 positions-on (penalty factor to be decided — 1e5 recommended per Gate B pt 2)
- notes: The whole epic's science half lives here. The 2026-08-31 REWIND quarantined
every mesh / pixelization result to `output/legacy_wrong/` and every MGE result to
Expand All @@ -61,7 +66,7 @@ This file is ledger: it auto-merges (`scripts/ledger_merge.py`).

## graphical-ep
- title: expectation propagation as the scalable alternative to graphical joint fits
- ledger: PyAutoMind/research/graphical_ep/ep_campaign.md
- ledger: PyAutoMind/draft/research/graphical_ep/ep_campaign.md
- mind-half: PyAutoMind/epics.md#graphical-ep
- status: both science phases planned; the projects are dormant and the campaign's
development phases run first
Expand Down
68 changes: 68 additions & 0 deletions phases/inference_programme/cluster_gradient_search_benchmark.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
# Inference_programme — phase 17: cluster-scale gradient-search benchmark (Prodigy vs Nautilus, point-source)

Project: inference_programme
Phase: 17
State: planned
Gates:
Witness: a cluster point-source sweep whose `results/searches/…` JSONs carry, per arm, best logL against the truth-instance logL, per-parameter recovery, wall time and evals/steps — the same truth-anchored shape as the 2026-07-31 galaxy-scale rows
Budget: 24:00
Runs:
Ruling:
Lane: local-dev
Review-minutes: 20
Filed: 2026-07-31
Migrated-from: PyAutoMind/draft/research/autolens_profiling/cluster_gradient_search_benchmark.md

## Question

Does the Nautilus-vs-MultiStartProdigy comparison hold at CLUSTER scale for point
sources — the regime the solved variants target (many sources, big dimensionality
win: −2 params/source with `PointSolved`)?

> **ABSORBED 2026-07-31 (same day it was filed)** into the Mind prompt
> `draft/feature/autolens/point_source_defaults_campaign.md` (phase B, cluster
> tier, on RAL A100s). Do not dispatch this phase standalone — it is carried here
> so the context literals below survive the Cortex split and so the campaign's
> cluster tier has a phase to rule against when it runs.

Human-requested follow-up (2026-07-31, #657 wrap-up): once the galaxy-scale
point_source benchmark cells wrap, extend the comparison to a cluster-scale
point-source model in autolens_profiling.

### Scope (autolens_profiling)

- New sweep cells: `nautilus` + `multi_start_prodigy` on a cluster point-source dataset
(multi-plane tracer, multiple sources; reuse/extend the profiling simulators — the
workspace `cluster/simulator.py` family CSV conventions are the model source).
- Model: dPIE/Isothermal members + host halo as in the workspace cluster examples;
sources as `al.ps.PointSolved` + `FitPositionsSourceSolved` (recommended search config)
with an image-plane-solved arm if runtime permits.
- KNOWN CONSTRAINT: free cosmology cannot cross the solver custom_jvp boundary
(Tracer aux; see the Mind's `ideas.md` follow-up) — pin cosmology, or benchmark
source-plane solved only (no solver in chain) until the flattening follow-up lands.
- Compare: best logL vs truth-instance logL, per-parameter recovery, wall time,
evals/steps; same truth-anchored methodology as the 2026-07-31 galaxy-scale runs.

### Context literals (2026-07-31 galaxy-scale runs, results/searches/)

- image_plane truth logL +7.20: nautilus +9.56 (739.7s) converged; prodigy 64x300 −79.9
(852.8s) missed the 5mas basin (PairAll −inf underflow plateaus suspected; 256-start
rerun pending at filing time).
- source_plane truth logL −33788: BOTH found better-than-truth wrong models (nautilus
−313, prodigy −110 at 8.7x less wall) — scalar-mu^2 free-centre source-plane bias
displayed; gradients work, likelihood flavour is the problem.

## Witness

Per arm, a `results/searches/…` JSON carrying best logL against the truth-instance
logL, per-parameter recovery, wall time and evals/steps — the same shape as the
galaxy-scale rows above, so the two tiers are directly comparable.

## Where to look

- `/home/jammy/Code/PyAutoLabs/autolens_profiling/results/searches/`
- `/mnt/ral/jnightin/autolens_profiling/`

## Runs

## Ruling
Loading
Loading