Overview
Harvest of the 2026-08-27 RAL A100 queue plus the audit that followed it (https://claude.ai/code/artifact/d9f4b0f3-52a1-4830-a9ad-11a225b77507). The Phase-4 diagnostic (job 341892) falsifies the threshold hypothesis and makes Gate B pt 2 callable (factor 1e5 → 5/5; auto/0.2 at 1e8 → 0/4). Six Phase 8B arms that crashed at results-write were rebuilt offline from search_internal.dill. The independent re-check confirmed Gate A / Gate B pt 1 / CP-4 to the digit and weakened the W6 and W2 wording; the ledger is two PRs behind.
Plan
- Make
_targets.py positions block reflect the resolved threshold/factor so Phase-4 arms get distinct target_ids; add penalty_at_best if cheap.
- Harvest 10 diagnostic + 2 refs + 6 recovered + 7 other 8B rows; skip the four rewritten nbatch JSONs.
- Repair
bijector_ab.py scorer (UNSCORABLE on missing data; F4 → fp64-equivalence); no 8B verdict yet.
- Ledger: DECISIONS entries (W6, W2, W4 harvest, 8B loss+recovery, Gate B pt 2 CALLED), PROGRAMME state table, phase_04/phase_08/REFS write-ups, wording corrections from the re-check, non-physical-ellipticity finding, trap-rule addition.
- File the ell_comps disk-constraint follow-up as a Mind draft; lint, wall-check, README regen.
Detailed implementation plan
Work Classification
Workspace (autolens_profiling results/scripts/notes).
Affected Repositories
- autolens_profiling (primary)
Branch Survey
| Repository |
Current Branch |
Dirty? |
| ./autolens_profiling |
main |
clean (6 stray result regenerations reverted) |
Suggested branch: feature/harvest-0827-gate-b-pt2
Worktree root: ~/Code/PyAutoLabs-wt/harvest-0827-gate-b-pt2/
Implementation Steps
See the prompt's numbered Scope (1–8) — it is the step list, with file paths and the exact numbers/wording to land.
Key Files
scripts/misc/searches/_targets.py, bijector_ab.py, _runner.py, _metrics.py
results/notes/inference/{PROGRAMME,DECISIONS}.md, phase_03_prodigy_reliability/RESULTS.md, phase_04_positions/RESULTS.md, phase_08_regularization/RESULTS.md, targets/REFS_V1_HARVEST.md, methods/*.md
results/searches/** (new rows), scripts/misc/wall/rates.py
Original Prompt
Click to expand starting prompt
@autolens_profiling Harvest 2026-08-27: Gate B pt 2, recovered 8B rows, scorer + ledger repairs
Type: feature
Target: autolens_profiling
Difficulty: medium
Autonomy: supervised
Priority: high
Status: formalised
Issued: 2026-08-27
Original request (verbatim): "Look at the JAX profiling gradinet epic, download results
overnight from A100, and do a major assessment of the results so far are, maybe double
checking some conclusiojns." → audit → "yep do all that" (ranked actions 2–7).
Audit: https://claude.ai/code/artifact/d9f4b0f3-52a1-4830-a9ad-11a225b77507
Harvest is staged (not committed) in the Claude session scratchpad
/tmp/claude-1000/-home-jammy-Code-PyAutoLabs/22944545-bd52-466e-bb08-4236d7b478a6/scratchpad/:
ral_harvest/ (RAL mirror of results/ + hpc logs), recovery/results/... (six
recovered_offline: true Phase 8B JSONs + recover_phase8b.py), recovery_table.json.
Scope
- Target-id honesty first —
@autolens_profiling/scripts/misc/searches/_targets.py:306-330
_positions_block uses module defaults; make it read the resolved positions setup
(threshold_mode/value, factor) so the three Phase-4 arms get distinct target_ids.
Add a penalty_at_best readout to schema v2 for MultiStart rows if it is cheap
(one likelihood call at the best point with/without the penalty); otherwise record it
as owed.
- Harvest rows into
results/searches/: 10 Phase-4 diagnostic rows
(multi_start_prodigy_autoconv/imaging/mge/hst/*_pos_t0.3_f1e5.json,
*_pos_tauto0.2_f1e8.json; mark seed0 tauto as INVALID — silent resume, 68 s),
2 refs rows (nautilus/imaging/{knn,delaunay_matern}/hst/hpc_hpc_a100_fp64_ref.json),
6 recovered 8B rows (recovery/results/.../phase8b/*.json, keep the
recovered_offline markers), 3 knn 8B rows + 4 mge 8B controls from ral_harvest.
Do NOT copy the four rewritten nbatch JSONs (341894/5 short-circuit overwrote walls).
- Scorer repair
scripts/misc/searches/bijector_ab.py: score_f1/score_f2
must return UNSCORABLE (not PASS/FAIL) on missing data; F4 → "best_fom and max
log-likelihood equivalent within fp64 on the winning lane" (F5 already proves the
objective is inert); record the F2 reference deviation as a DECISIONS entry needing
human ratification. Do not emit a Phase 8B verdict yet (delaunay arms still running).
- Ledger (
results/notes/inference/): DECISIONS.md entries (append-only, dated) for
W6 n_batch, W2 Stage 2, W4 harvest, 8B 340576 loss + 341874/5 crash+recovery, and
Gate B pt 2 CALLED (human-approved 2026-08-27): "PositionsLH is not intrinsically
hostile to gradient MAP on MGE; factor 1e8 was mis-scaled for a fixed-step searcher.
At factor 1e5 Prodigy(n=256, prior_box, autoconv) is 5/5 positions-on at parity with
positions-off. Gate B pt 1 extends to positions-on at factor ≤ 1e5; 1e8 rejected."
Caveats: idealised truth positions; one cell/5 seeds (Wilson-95 lower 0.57, does not
re-establish ≥99%); 1e5 shown safe not calibrated (nothing between 1e5 and 1e8; SLaM
factor 3 untested); Nautilus unaffected; no penalty_at_best field.
PROGRAMME.md state table rows for 8B / Phase 4 / W4 / Gates; §9b; :970 Sibson →
target-config error. phase_04 RESULTS.md: diagnostic section (table: off 5/5; t0.3
f1e5 5/5; t0.3 f1e8 2/5 under Phase 3's coded rule; tauto0.2 f1e8 0/4 + 1 invalid;
constrained-lane-step rate 15–18 → 38–43 → 44–53 → 41–56 %; median step scale
0.14–0.16 vs 0.21–0.22; transit-damage mechanism; out-of-disk best points 17 % → 29 %).
phase_08 RESULTS.md 8B: submit ids, crash root cause, recovery, per-arm table, signal,
scorer note. REFS_V1_HARVEST.md: 9/13 certified; 341908 slam_source_pix_nn thrashed
(0 calls in 6 h); flag knn ref 480 nats below same-target Prodigy log_reg arm.
- Wording corrections from the re-check: W6 "1.78×" is per-eval (wall 1.46×,
ESS/min 1.59×; nb1000 logZ −0.10 nat ≈ 9σ of seed sd 0.011; ESS/eval −10 %);
W2 Nautilus: maxL lower with positions in 5/5 seeds (mean −0.126, t=−3.45, p≈0.026),
wall −3…+7 %, not "±3 %/no-op"; Prodigy positions 2/5 under the coded rule (declare
the stricter band if kept); phase_03 RESULTS.md:21 "0.251" → 0.028 nats below the cut,
:22 swing → 0.0609 (50 %); phase_08 :289 duplicate of the coefficient_min correction;
DECISIONS:449 CPU max|Δ| 1.62 is a change from 2.27, not "unchanged";
methods/nautilus.md:76-81 831 s/12.1 ms → 707 s/10.56 ms; methods/multi_start_prodigy.md
and methods/nss.md: add a dated banner that they pre-date Gate B pt 1 / Gate A.
Add "Resuming .* previous samples found" to the PROGRAMME trap-check rule.
Add the non-physical-ellipticity finding (1,252/6,240 lane best points |e|≥1, 0/246
hits; re-based p̂ = 61/1064 = 0.057) as a second lower-bound reason in phase_03.
scripts/misc/wall/rates.py: record measured delaunay_adapt_split / knn Prodigy walls
from this harvest if the format supports it.
- File a Mind draft prompt (feature/autofit or autogalaxy) for the joint ell_comps disk
constraint / reparameterisation follow-up; do not implement it here.
ruff check ., ruff format --check ., scripts/misc/wall/check_submits.py --check,
scripts/misc/tooling/build_readme.py (README regen is a lint gate).
Out of scope: PR#181 (MIG preflight cap) is a separate open PR; PyAutoFit/PyAutoLens
fix is bug/autofit/result_instance_fallback_samples_persist.md.
Overview
Harvest of the 2026-08-27 RAL A100 queue plus the audit that followed it (https://claude.ai/code/artifact/d9f4b0f3-52a1-4830-a9ad-11a225b77507). The Phase-4 diagnostic (job 341892) falsifies the threshold hypothesis and makes Gate B pt 2 callable (factor 1e5 → 5/5; auto/0.2 at 1e8 → 0/4). Six Phase 8B arms that crashed at results-write were rebuilt offline from
search_internal.dill. The independent re-check confirmed Gate A / Gate B pt 1 / CP-4 to the digit and weakened the W6 and W2 wording; the ledger is two PRs behind.Plan
_targets.pypositions block reflect the resolved threshold/factor so Phase-4 arms get distincttarget_ids; addpenalty_at_bestif cheap.bijector_ab.pyscorer (UNSCORABLE on missing data; F4 → fp64-equivalence); no 8B verdict yet.Detailed implementation plan
Work Classification
Workspace (autolens_profiling results/scripts/notes).
Affected Repositories
Branch Survey
Suggested branch:
feature/harvest-0827-gate-b-pt2Worktree root:
~/Code/PyAutoLabs-wt/harvest-0827-gate-b-pt2/Implementation Steps
See the prompt's numbered Scope (1–8) — it is the step list, with file paths and the exact numbers/wording to land.
Key Files
scripts/misc/searches/_targets.py,bijector_ab.py,_runner.py,_metrics.pyresults/notes/inference/{PROGRAMME,DECISIONS}.md,phase_03_prodigy_reliability/RESULTS.md,phase_04_positions/RESULTS.md,phase_08_regularization/RESULTS.md,targets/REFS_V1_HARVEST.md,methods/*.mdresults/searches/**(new rows),scripts/misc/wall/rates.pyOriginal Prompt
Click to expand starting prompt
@autolens_profilingHarvest 2026-08-27: Gate B pt 2, recovered 8B rows, scorer + ledger repairsType: feature
Target: autolens_profiling
Difficulty: medium
Autonomy: supervised
Priority: high
Status: formalised
Issued: 2026-08-27
Original request (verbatim): "Look at the JAX profiling gradinet epic, download results
overnight from A100, and do a major assessment of the results so far are, maybe double
checking some conclusiojns." → audit → "yep do all that" (ranked actions 2–7).
Audit: https://claude.ai/code/artifact/d9f4b0f3-52a1-4830-a9ad-11a225b77507
Harvest is staged (not committed) in the Claude session scratchpad
/tmp/claude-1000/-home-jammy-Code-PyAutoLabs/22944545-bd52-466e-bb08-4236d7b478a6/scratchpad/:ral_harvest/(RAL mirror of results/ + hpc logs),recovery/results/...(sixrecovered_offline: truePhase 8B JSONs +recover_phase8b.py),recovery_table.json.Scope
@autolens_profiling/scripts/misc/searches/_targets.py:306-330_positions_blockuses module defaults; make it read the resolved positions setup(threshold_mode/value, factor) so the three Phase-4 arms get distinct
target_ids.Add a
penalty_at_bestreadout to schema v2 for MultiStart rows if it is cheap(one likelihood call at the best point with/without the penalty); otherwise record it
as owed.
results/searches/: 10 Phase-4 diagnostic rows(
multi_start_prodigy_autoconv/imaging/mge/hst/*_pos_t0.3_f1e5.json,*_pos_tauto0.2_f1e8.json; mark seed0 tauto as INVALID — silent resume, 68 s),2 refs rows (
nautilus/imaging/{knn,delaunay_matern}/hst/hpc_hpc_a100_fp64_ref.json),6 recovered 8B rows (
recovery/results/.../phase8b/*.json, keep therecovered_offlinemarkers), 3 knn 8B rows + 4 mge 8B controls fromral_harvest.Do NOT copy the four rewritten nbatch JSONs (341894/5 short-circuit overwrote walls).
scripts/misc/searches/bijector_ab.py:score_f1/score_f2must return UNSCORABLE (not PASS/FAIL) on missing data; F4 → "best_fom and max
log-likelihood equivalent within fp64 on the winning lane" (F5 already proves the
objective is inert); record the F2 reference deviation as a DECISIONS entry needing
human ratification. Do not emit a Phase 8B verdict yet (delaunay arms still running).
results/notes/inference/): DECISIONS.md entries (append-only, dated) forW6 n_batch, W2 Stage 2, W4 harvest, 8B 340576 loss + 341874/5 crash+recovery, and
Gate B pt 2 CALLED (human-approved 2026-08-27): "PositionsLH is not intrinsically
hostile to gradient MAP on MGE; factor 1e8 was mis-scaled for a fixed-step searcher.
At factor 1e5 Prodigy(n=256, prior_box, autoconv) is 5/5 positions-on at parity with
positions-off. Gate B pt 1 extends to positions-on at factor ≤ 1e5; 1e8 rejected."
Caveats: idealised truth positions; one cell/5 seeds (Wilson-95 lower 0.57, does not
re-establish ≥99%); 1e5 shown safe not calibrated (nothing between 1e5 and 1e8; SLaM
factor 3 untested); Nautilus unaffected; no penalty_at_best field.
PROGRAMME.md state table rows for 8B / Phase 4 / W4 / Gates; §9b;
:970Sibson →target-config error. phase_04 RESULTS.md: diagnostic section (table: off 5/5; t0.3
f1e5 5/5; t0.3 f1e8 2/5 under Phase 3's coded rule; tauto0.2 f1e8 0/4 + 1 invalid;
constrained-lane-step rate 15–18 → 38–43 → 44–53 → 41–56 %; median step scale
0.14–0.16 vs 0.21–0.22; transit-damage mechanism; out-of-disk best points 17 % → 29 %).
phase_08 RESULTS.md 8B: submit ids, crash root cause, recovery, per-arm table, signal,
scorer note. REFS_V1_HARVEST.md: 9/13 certified; 341908 slam_source_pix_nn thrashed
(0 calls in 6 h); flag knn ref 480 nats below same-target Prodigy log_reg arm.
ESS/min 1.59×; nb1000 logZ −0.10 nat ≈ 9σ of seed sd 0.011; ESS/eval −10 %);
W2 Nautilus: maxL lower with positions in 5/5 seeds (mean −0.126, t=−3.45, p≈0.026),
wall −3…+7 %, not "±3 %/no-op"; Prodigy positions 2/5 under the coded rule (declare
the stricter band if kept); phase_03 RESULTS.md:21 "0.251" → 0.028 nats below the cut,
:22 swing → 0.0609 (50 %); phase_08 :289 duplicate of the coefficient_min correction;
DECISIONS:449 CPU max|Δ| 1.62 is a change from 2.27, not "unchanged";
methods/nautilus.md:76-81 831 s/12.1 ms → 707 s/10.56 ms; methods/multi_start_prodigy.md
and methods/nss.md: add a dated banner that they pre-date Gate B pt 1 / Gate A.
Add "Resuming .* previous samples found" to the PROGRAMME trap-check rule.
Add the non-physical-ellipticity finding (1,252/6,240 lane best points |e|≥1, 0/246
hits; re-based p̂ = 61/1064 = 0.057) as a second lower-bound reason in phase_03.
scripts/misc/wall/rates.py: record measured delaunay_adapt_split / knn Prodigy wallsfrom this harvest if the format supports it.
constraint / reparameterisation follow-up; do not implement it here.
ruff check .,ruff format --check .,scripts/misc/wall/check_submits.py --check,scripts/misc/tooling/build_readme.py(README regen is a lint gate).Out of scope: PR#181 (MIG preflight cap) is a separate open PR; PyAutoFit/PyAutoLens
fix is
bug/autofit/result_instance_fallback_samples_persist.md.