Repository navigation
Description
Overview
Phase 3 of the hpc-campaign epic. Before a campaign is submitted, python -m autofit.campaign plan proposes resources, wall time, ETA and disk from measured evidence (PyAutoPulse/Insight profiling and inference JSON) or a pilot, with an evidence grade on every number and no invented 'optimal'.
Plan
- Readers for
profiling-summary@3,walltime-validation@1,inference-summary@2by path or URL; stages declare opaque match keys underevidence: - Evidence grades on every number: measured-current / provisional / analogue / superseded / estimated / unsupported
campaign plan→ plan.md + plan.json (capacity, p50/p95/max wall + RSS, proposed CPUs / mem_per_cpu / walltime = p95+25 % per size bin / throttle, ETA, disk, energy placeholder for phase 4)campaign pilot→ stratified 1–2 % manifest; never submitted in this task- Witness W3: graded 5,000-lens Euclid VIS plan in the human scratch folder
- Tier: judge — merge mode: human /prm
Heart RED at the door (2026-10-30): release validation FAILED (stage integrate); PyAutoHeart/workflows/Release Integrate failure; PyAutoNerves test_fitsable.py::test__output_to_fits red; Unit-test timing: 1 regression (>3× baseline), 14 slow; autogalaxy red; Release validation NOT release_ready (v2026.10.30.1.dev85101); autolens_profiling red; Worktree drift 1 dirty. Human override for Heart RED (development only) authorized live by the human for hpc-campaign phases 3 and 4 ("Override, proceed"). Merge still needs green CI and a separate /prm; no release.
Detailed implementation plan
Branch survey: ./fit/PyAutoFit main (7d0fe9d) clean. Suggested branch: feature/hpc-campaign-p3-plan-evidence.
Files (all new unless noted): autofit/campaign/evidence.py (loaders + grade logic + matcher), plan.py, pilot.py, __main__.py (add plan/pilot), spec.py (accept evidence: per stage). Tests: fixture JSON for each schema; grade matrix; DR1 repack reproduced from a sacct fixture (12 GB/4 CPU vis_lp, 16 GB vis_pix, 8 GB SED) within tolerance; 'optimal' never emitted without a designation record. Shares only __main__.py with phase 4; p3 merges first.
Original Prompt
Click to expand starting prompt
Issued: 2026-10-30
Epic: hpc-campaign
Phase: 3
Blocked-by: phase 2 (COMPLETE 2026-10-30)
Concurrent-with: hpc-campaign phase 4 (owns campaign/carbon.py, report.py); this task owns campaign/evidence.py, plan.py, pilot.py; shared campaign/main.py — p3 merges first
Consequence: judge
Autonomy: human-required
Witness: W3 — graded 5,000-lens Euclid VIS plan (vis_lp → vis_pix → SED) from live Pulse/Insight JSON, in Workspace/Science/scratch/hpc_campaign_p3_w3/
HPC campaign phase 3 — evidence readers, plan, pilot
Original request (human, 2026-10-30): "do both" (hpc-campaign phases 3 and 4, in parallel), after
"Ctoninue the PyAutoLEns II HPC runs and Results".
Lane prompt: Workspace/Science/scratch/pyautolens_ii_campaign_results_scoping_2026-10-28/PROMPT_hpc_campaign.md §Phase 3.
@PyAutoFit: readers for profiling-summary@3, walltime-validation@1, inference-summary@2 (path/URL; opaque
match keys under evidence:); evidence grades on every number; never "optimal" without a Pulse designation
record; campaign plan (plan.md + plan.json); campaign pilot (stratified 1–2 % manifest, never submitted
here). Done: DR1 repack numbers reproduced from a sacct fixture; W3.
Activity
Jammy2211 commentedon Oct 30, 2026
Library PR(s) open under the human-authorized Heart RED development override (RED reasons quoted in the issue body). Branch gates passed: full PyAutoFit suite (p3 4,120 / p4 4,143), smoke autofit 10/0, independent review FINDINGS all fixed with tests. PRs: #1747 (p3) → #1748 (p4, stacked) + PyAutoNerves#209. Merge needs green CI and /prm.
Jammy2211 commentedon Oct 30, 2026
Shipped
hpc-campaign phase 3 merged to
main(pending release): #1747 (merge 70ab26c) — evidence readers with grades,campaign plan,campaign pilot. All CI legs green; full suite 4,120; smoke autofit green; independent review findings fixed. Witness W3 in the human scratch folder. Merged under the human-authorized Heart RED development override with a separate /prm.