Overview
Phase 0 of the CTI resurrection epic: PyAutoCTI, autocti_workspace and autocti_workspace_test have been unmaintained for ~2 years (last pushes 2024-11-13 / 2023-02-21) and fell out of the PyAutoLabs ecosystem. This phase brings the repos back under management (org transfer done, workspace checkout, repos.yaml registration) and makes the library importable and unit-test-green against the current autoconf/autofit/autoarray stack, deferring the visualization rewrite to Phase 1.
Plan
- Transfer the three repos to the PyAutoLabs org (done 2026-07-16) and clone them into the workspace.
- Register all three in
PyAutoMind/repos.yaml and regenerate the routing tables (repos_sync.py --write).
- arcticpy install spike: verify the hard
arcticpy==2.6 dependency (source-only C++ tarball, Dec 2023) builds and imports on Python 3.11/3.12 with modern numpy; fall back to lazy clocker imports / patched re-release / vendoring in that order.
- Modernise packaging:
setup.py with exact autoconf/autofit/autoarray=={VERSION} pins → pyproject.toml with floor dependencies and dynamic version, matching PyAutoGalaxy.
- Fix the ~15 non-visualization broken imports so
import autocti succeeds with the plot subpackage quarantined until Phase 1.
- Get the
test_autocti suite (96 files) collecting and passing, plot tests skipped/quarantined.
Epic context (later phases get their own prompts/issues)
Phase 1 viz migration (Plotter/PlotterInterface objects → per-domain plot/*_plots.py matplotlib functions + model/visualizer.py, mirroring PyAutoGalaxy) → Phase 2 autofit sync → Phase 3 CI + ecosystem plumbing (Actions, Build/Heart/docs-hub/RTD) → Phase 4 autocti_workspace update (118 scripts / 79 notebooks) → Phase 5 autocti_workspace_test rebuild (preserving the Euclid tvac/temporal heritage) + first modern PyPI release.
Detailed implementation plan
Affected Repositories
- PyAutoCTI (primary)
- PyAutoMind (repos.yaml registration)
Branch Survey
| Repository |
Current Branch |
Dirty? |
| PyAutoCTI |
main (remote only — not yet cloned locally; stale feature/* branches from ≤2024 to be triaged in cleanup) |
n/a |
| ./PyAutoMind |
main |
clean |
Suggested branch: feature/cti-resurrection-phase0
Implementation Steps
- Clone PyAutoLabs/{PyAutoCTI, autocti_workspace, autocti_workspace_test} into
~/Code/PyAutoLabs/.
- Add the three repos to
PyAutoMind/repos.yaml (library / workspace / workspace_test categories, one-line roles); run python3 PyAutoMind/scripts/repos_sync.py --write; commit regenerated tables.
- Worktree
~/Code/PyAutoLabs-wt/cti-resurrection-phase0/ on feature/cti-resurrection-phase0 for PyAutoCTI.
- arcticpy spike:
pip install arcticpy==2.6 into the dev venv on py3.11; if the C++ build or import fails, make autocti/clocker/* imports lazy so import autocti works without arctic, and record the arctic-refresh follow-up.
- Replace
setup.py/requirements.txt exact-pin scheme with pyproject.toml (dynamic version, floor deps autoconf/autofit/autoarray, optional arcticpy extra) modeled on PyAutoGalaxy/pyproject.toml.
- Fix non-viz import drift (survey 2026-07-16):
autoarray Mask → Mask1D/Mask2D; removed module aliases (array_, grid_, sparse_, mask_); autofit.non_linear.plot.{mcmc,mle,nest}_plotters fallout in search plotting hooks; quarantine autocti/plot/ + */plot/*_plotters.py + model/plotter_interface.py behind Phase 1.
pytest test_autocti green (plot tests skipped), numpy-only.
Key Files
autocti/__init__.py — eager clocker import (arcticpy hard dep)
autocti/clocker/{one_d,two_d}.py — arcticpy imports
setup.py, requirements.txt, optional_requirements.txt — packaging modernisation
autocti/plot/, autocti/*/plot/, autocti/*/model/plotter_interface.py — Phase-1 quarantine boundary
PyAutoMind/repos.yaml — body-map registration
Original Prompt
Click to expand starting prompt
PyAutoMind prompt: draft/feature/autocti/cti_resurrection_phase0_resurrect_and_register.md
You'll see that I used gto work on CTI (PyAutoCTI, autocti_workspace, autocti_workspace_test), but its been around 2 years and these repos have become outdated, and un maintained. With fable, i now have the time and capacity to bring them back into the PyAuto ecosystem. Can you scope out an epic task which will bring them back into the ecosystem, update them to be in sync with the new autofit, update them to use the vsiualization API now used on autolens and other projects (e.g. epic removal of Plotter objects in favour of matplotlib) and whateevr else you think is required? I guess also docs clean up, etc. So, broadly speaking, look at the CTI repos and stage how we update them and then well do the work.
Overview
Phase 0 of the CTI resurrection epic: PyAutoCTI, autocti_workspace and autocti_workspace_test have been unmaintained for ~2 years (last pushes 2024-11-13 / 2023-02-21) and fell out of the PyAutoLabs ecosystem. This phase brings the repos back under management (org transfer done, workspace checkout,
repos.yamlregistration) and makes the library importable and unit-test-green against the current autoconf/autofit/autoarray stack, deferring the visualization rewrite to Phase 1.Plan
PyAutoMind/repos.yamland regenerate the routing tables (repos_sync.py --write).arcticpy==2.6dependency (source-only C++ tarball, Dec 2023) builds and imports on Python 3.11/3.12 with modern numpy; fall back to lazy clocker imports / patched re-release / vendoring in that order.setup.pywith exactautoconf/autofit/autoarray=={VERSION}pins →pyproject.tomlwith floor dependencies and dynamic version, matching PyAutoGalaxy.import autoctisucceeds with the plot subpackage quarantined until Phase 1.test_autoctisuite (96 files) collecting and passing, plot tests skipped/quarantined.Epic context (later phases get their own prompts/issues)
Phase 1 viz migration (Plotter/PlotterInterface objects → per-domain
plot/*_plots.pymatplotlib functions +model/visualizer.py, mirroring PyAutoGalaxy) → Phase 2 autofit sync → Phase 3 CI + ecosystem plumbing (Actions, Build/Heart/docs-hub/RTD) → Phase 4 autocti_workspace update (118 scripts / 79 notebooks) → Phase 5 autocti_workspace_test rebuild (preserving the Euclid tvac/temporal heritage) + first modern PyPI release.Detailed implementation plan
Affected Repositories
Branch Survey
Suggested branch:
feature/cti-resurrection-phase0Implementation Steps
~/Code/PyAutoLabs/.PyAutoMind/repos.yaml(library / workspace / workspace_test categories, one-line roles); runpython3 PyAutoMind/scripts/repos_sync.py --write; commit regenerated tables.~/Code/PyAutoLabs-wt/cti-resurrection-phase0/onfeature/cti-resurrection-phase0for PyAutoCTI.pip install arcticpy==2.6into the dev venv on py3.11; if the C++ build or import fails, makeautocti/clocker/*imports lazy soimport autoctiworks without arctic, and record the arctic-refresh follow-up.setup.py/requirements.txtexact-pin scheme withpyproject.toml(dynamic version, floor depsautoconf/autofit/autoarray, optionalarcticpyextra) modeled onPyAutoGalaxy/pyproject.toml.autoarray Mask→Mask1D/Mask2D; removed module aliases (array_,grid_,sparse_,mask_);autofit.non_linear.plot.{mcmc,mle,nest}_plottersfallout in search plotting hooks; quarantineautocti/plot/+*/plot/*_plotters.py+model/plotter_interface.pybehind Phase 1.pytest test_autoctigreen (plot tests skipped), numpy-only.Key Files
autocti/__init__.py— eager clocker import (arcticpy hard dep)autocti/clocker/{one_d,two_d}.py— arcticpy importssetup.py,requirements.txt,optional_requirements.txt— packaging modernisationautocti/plot/,autocti/*/plot/,autocti/*/model/plotter_interface.py— Phase-1 quarantine boundaryPyAutoMind/repos.yaml— body-map registrationOriginal Prompt
Click to expand starting prompt
PyAutoMind prompt:
draft/feature/autocti/cti_resurrection_phase0_resurrect_and_register.md