Overview
autolens_profiling is mature and well-separated, and is about to become the home of the PreOptimizationTimes baseline — the last full profiling before the optimization push. Before those runs (phases 2–4), this task does one final holistic design review to lock the core design in for future extension (more datasets, instruments, packages), and puts the results-presentation story in place so campaign results land as browsable .md/.json on GitHub.
Phase 1 of 4 of PyAutoMind task maintenance/autolens_profiling/polish.md. Autonomy: running under --auto at effective level supervised (checkpoint-and-continue per PyAutoBrain/AUTONOMY.md) — plan below is the approved plan of record.
Plan
- Deep design review of the package layout (
instruments, likelihood, likelihood_runtime, likelihood_breakdown, vram, latent, searches, simulators, quick_update, hpc) and the shared _profile_cli.py helper; propose and apply small lock-in refactors only where they make extension cheaper — no behaviour-changing rewrites.
- Define the PreOptimizationTimes results convention: versioned
.json (existing) plus a rendered .md view per package, so every result is readable on GitHub without opening JSON.
- Audit per-package docs: add missing READMEs (
likelihood/, quick_update/, hpc/, scripts/), fix stale content (roadmap still points at retired PyAutoPrompt registry; results/README.md misses the runtime/breakdown/notes/quick_update sections).
- Design the top-level README dashboard and update
scripts/build_readme.py (queued path-update follow-up since the likelihood split; CI already checks its idempotence) so phases 2–4 slot results straight in.
- Decide the home of campaign artifacts: runtime results currently aggregate from
autolens_workspace_developer/jax_profiling/ — settle whether PreOptimizationTimes lives wholly in this repo.
Detailed implementation plan
Affected Repositories
- autolens_profiling (primary, only)
Branch Survey
| Repository |
Current Branch |
Dirty? |
| ./autolens_profiling |
main |
clean |
Suggested branch: feature/profiling-polish-design
Work Classification: Workspace
Worktree root: ~/Code/PyAutoLabs-wt/profiling-polish-design/
Implementation Steps
- Survey every package's script inventory +
_profile_cli.py/sweep.py interfaces; write a short design note (kept in-repo, e.g. results/notes/) recording what is locked in and any agreed renames/moves.
- Apply approved lock-in refactors (small, ruff-clean, smoke-import safe under
AUTOLENS_PROFILING_SMOKE=1).
- Add
.md result rendering to the results pipeline (JSON → per-package markdown table), tagged PreOptimizationTimes.
- Add/repair per-package READMEs and
results/README.md sections; fix stale roadmap/registry references in the top-level README.
- Update
scripts/build_readme.py to the post-split paths and design the dashboard section (populated in phase 4); keep --check green in lint.yml.
Key Files
_profile_cli.py — shared sweep flags / output-path resolver; the extension surface to lock in
likelihood_runtime/sweep.py, likelihood_runtime/aggregate.py — campaign driver + cross-repo aggregation to settle
scripts/build_readme.py — retired dashboard generator, queued for path update; CI runs --check
results/README.md, per-package README.mds — conventions + missing docs
Original Prompt
Click to expand starting prompt
polish phase 1 — holistic design review and lock-in
Type: maintenance
Target: autolens_profiling
Difficulty: medium
Autonomy: supervised
Priority: normal
Status: formalised
Phase 1 of 4 of polish.md (see parent for full intent). No profiling runs in
this phase — design and results-presentation groundwork only.
autolens_profiling is now a mature project with good separation into packages
(instruments, latent, likelihood_runtime, likelihood_breakdown, vram, …). Before
the PreOptimizationTimes baseline campaign (phases 2–4), do deep research on the
project and have one last think about ways to improve it: redesigns that make it
more concise and clearer. We will be extending it with more datasets, packages
and instruments, so this is the opportunity to lock the core design in well.
Also scan the repo and make sure that when profiling results come in they are
saved as .md or .json files and clearly displayed in per-package GitHub
.md files for browsing. Design (but do not yet populate) a high-level results
dashboard on the GitHub README. The baseline result set will be named
PreOptimizationTimes — the comparison base for the optimization work that
follows.
Out of scope: any profiling runs (phases 2–4); searches; point_source; laptop
GPU (user runs those in a follow-up); the future PyAutoBrain profiling agent
idea recorded in the parent prompt.
Overview
autolens_profiling is mature and well-separated, and is about to become the home of the PreOptimizationTimes baseline — the last full profiling before the optimization push. Before those runs (phases 2–4), this task does one final holistic design review to lock the core design in for future extension (more datasets, instruments, packages), and puts the results-presentation story in place so campaign results land as browsable
.md/.jsonon GitHub.Phase 1 of 4 of
PyAutoMindtaskmaintenance/autolens_profiling/polish.md. Autonomy: running under--autoat effective levelsupervised(checkpoint-and-continue perPyAutoBrain/AUTONOMY.md) — plan below is the approved plan of record.Plan
instruments,likelihood,likelihood_runtime,likelihood_breakdown,vram,latent,searches,simulators,quick_update,hpc) and the shared_profile_cli.pyhelper; propose and apply small lock-in refactors only where they make extension cheaper — no behaviour-changing rewrites..json(existing) plus a rendered.mdview per package, so every result is readable on GitHub without opening JSON.likelihood/,quick_update/,hpc/,scripts/), fix stale content (roadmap still points at retiredPyAutoPromptregistry;results/README.mdmisses theruntime/breakdown/notes/quick_updatesections).scripts/build_readme.py(queued path-update follow-up since the likelihood split; CI already checks its idempotence) so phases 2–4 slot results straight in.autolens_workspace_developer/jax_profiling/— settle whether PreOptimizationTimes lives wholly in this repo.Detailed implementation plan
Affected Repositories
Branch Survey
Suggested branch:
feature/profiling-polish-designWork Classification: Workspace
Worktree root:
~/Code/PyAutoLabs-wt/profiling-polish-design/Implementation Steps
_profile_cli.py/sweep.pyinterfaces; write a short design note (kept in-repo, e.g.results/notes/) recording what is locked in and any agreed renames/moves.AUTOLENS_PROFILING_SMOKE=1)..mdresult rendering to the results pipeline (JSON → per-package markdown table), taggedPreOptimizationTimes.results/README.mdsections; fix stale roadmap/registry references in the top-level README.scripts/build_readme.pyto the post-split paths and design the dashboard section (populated in phase 4); keep--checkgreen inlint.yml.Key Files
_profile_cli.py— shared sweep flags / output-path resolver; the extension surface to lock inlikelihood_runtime/sweep.py,likelihood_runtime/aggregate.py— campaign driver + cross-repo aggregation to settlescripts/build_readme.py— retired dashboard generator, queued for path update; CI runs--checkresults/README.md, per-packageREADME.mds — conventions + missing docsOriginal Prompt
Click to expand starting prompt
polish phase 1 — holistic design review and lock-in
Type: maintenance
Target: autolens_profiling
Difficulty: medium
Autonomy: supervised
Priority: normal
Status: formalised
Phase 1 of 4 of
polish.md(see parent for full intent). No profiling runs inthis phase — design and results-presentation groundwork only.
autolens_profiling is now a mature project with good separation into packages
(instruments, latent, likelihood_runtime, likelihood_breakdown, vram, …). Before
the PreOptimizationTimes baseline campaign (phases 2–4), do deep research on the
project and have one last think about ways to improve it: redesigns that make it
more concise and clearer. We will be extending it with more datasets, packages
and instruments, so this is the opportunity to lock the core design in well.
Also scan the repo and make sure that when profiling results come in they are
saved as
.mdor.jsonfiles and clearly displayed in per-package GitHub.mdfiles for browsing. Design (but do not yet populate) a high-level resultsdashboard on the GitHub README. The baseline result set will be named
PreOptimizationTimes — the comparison base for the optimization work that
follows.
Out of scope: any profiling runs (phases 2–4); searches; point_source; laptop
GPU (user runs those in a follow-up); the future PyAutoBrain profiling agent
idea recorded in the parent prompt.