Repository navigation
Description
Overview
PyAutoCTI's docs/api/ is published on Read the Docs, but 53 of its 84 autosummary entries point to symbols that don't exist. plot.rst is an unadapted copy of the Lens/Galaxy class-based template (48 dead Plotter/MatPlot/Include/Visuals classes), and data.rst lists 5 symbols that autocti never exports. This rewrites both pages against the real API and adds PyAutoCTI to Heart's /audit_docs skill, so it isn't skipped again. cti-upkeep phase 5c.
Plan
- Rewrite
plot.rstin the functional style already used by PyAutoFit'splot.rst, documenting the realautocti.plotexports. - Fix
data.rst: drop the Grid entries (CTI doesn't use or re-export grids; autoarray documents them), renameLayoutDataset1D→Layout1D, and drop the nonexistentSettingsDataset1D. - Add PyAutoCTI to the repo table in
PyAutoHeart/skills/audit_docs/SKILL.md. - Verify with an import +
hasattraudit (0 dead) and a localsphinx-build, because CTI has no docs CI until phase 3c. - Tier: glance. Merge mode: auto-merge on green if the Witness passes, then a post-merge summary.
Detailed implementation plan
Affected Repositories
- PyAutoCTI (primary)
- PyAutoHeart
Branch Survey
| Repository | Current Branch | Dirty? |
|---|---|---|
| ./cti/PyAutoCTI | main (804ddeb) | clean |
| ./organs/PyAutoHeart | main | clean |
Suggested branch: feature/cti-api-rst-rewrite
Audit today (2026-11-06)
plot.rst: 48 deaddata.rst: 5 dead (Grid2D,Grid2DIrregular,Grid1D,LayoutDataset1D,SettingsDataset1D)modeling.rst: 0 (the PySwarms entries were already removed)arctic,clocking,fitting: clean
Implementation Steps
docs/api/plot.rst: an introduction to the functional API with animport autocti.plot as apltexample (mirroringPyAutoFit/docs/api/plot.rst), then sections:- Dataset 1D:
figure_dataset_1d_data,subplot_dataset_1d,subplot_dataset_1d_list - Fit 1D:
figure_fit_dataset_1d,subplot_fit_dataset_1d,subplot_fit_dataset_1d_list,fits_fit_dataset_1d - Charge injection imaging: the
*_imaging_ci_*functions plusfigure_pre_cti_data_residual_map - Fit CI: the
*_fit_ci_*functions plussubplot_noise_scaling_map_dict - General:
plot_array,plot_yx,plot_cti_1d,subplot_save - Search plots: the autofit
corner_cornerpy,corner_anesthetic,subplot_parameters,log_likelihood_vs_iteration - Output:
output_figure - Visualization during a fit:
PlotterDataset1D,PlotterImagingCI
- Dataset 1D:
docs/api/data.rst: remove the 3 Grid entries and the grid wording, renameLayoutDataset1D→Layout1D, and dropSettingsDataset1D.PyAutoHeart/skills/audit_docs/SKILL.md: add a PyAutoCTI row and change the "all three repos" default to four.- Verify: the audit script reports 0 dead, and
sphinx-build -b html docsshows no new warnings onapi/.
Key Files
PyAutoCTI/docs/api/plot.rst,PyAutoCTI/docs/api/data.rstPyAutoCTI/autocti/plot/__init__.py: the source of truth for plot exportsPyAutoFit/docs/api/plot.rst: the reference patternPyAutoHeart/skills/audit_docs/SKILL.md
Original Prompt
Click to expand starting prompt
Rewrite PyAutoCTI docs/api — 55 of 89 autosummary entries are dead
Type: docs
Target: PyAutoCTI
Repos:
- PyAutoCTI
Themes: - docs-hub
- cti
Difficulty: medium
Autonomy: supervised
Priority: normal
Status: formalised
Consequence: glance
Witness: Every autosummary entry underPyAutoCTI/docs/api/imports andhasattr-resolves against the installedautocti(the/audit_docssweep reports 0 dead, was 55 of 89),plot.rstdocuments the function-styleautocti.plotexports, thedata.rstre-export-or-remove call is recorded, andPyAutoHeart/skills/audit_docs/SKILL.mdlists PyAutoCTI.
Review-minutes: 3
Unattended: ready
Epic: cti-upkeep
Phase: 5
Filed: 2026-08-06 (backfilled from git)
Filed 2026-08-06 from a full /audit_docs sweep (every autosummary entry
verified by import + hasattr against installed source). PyAutoCTI's
docs/api/ is RTD-published but untouched since 2024-09-27; 62% of its
documented symbols don't exist.
docs/api/plot.rst(49 dead entries) — the file is an unadapted copy of
the Lens/Galaxy class-heavy plot-doc template; none of the documented class
hierarchy (Array2DPlotter…FitImagingCIPlotter,MatPlot1D/2D,
Include*,Visuals*, 22 matplotlib-wrapper classes, and the
NestPlotter/MCMCPlotter/MLEPlottertrio removed from autofit in the
class→function refactorbc917452e) ever existed in CTI
(git log -S "class MatPlot2D"returns nothing). Rewrite from scratch
against the actualautocti/plot/__init__.pyexports (function-based
plot_array,plot_yx,subplot_*,figure_*+ classes
PlotterDataset1D,PlotterImagingCI), following the corrected
function-style pattern planned for PyAutoFit'splot.rst
(existing draftdocs/libraries/pyautofit_plot_rst_dead_plotters.md—
re-confirmed by this audit; ship that one first as the reference).docs/api/data.rst(5 dead) —Grid2D,Grid2DIrregular,Grid1D
(exist in autoarray but never re-exported byautocti/__init__.py) and
LayoutDataset1D/SettingsDataset1D(don't exist anywhere;Layout1D
does). Maintainer call: remove the entries or add the re-exports first.docs/api/modeling.rst(2 dead) —PySwarmsLocal/PySwarmsGlobal,
removed from autofit incc9fd6df4; drop them.arctic.rst,clocking.rst,fitting.rstare clean; Fit/Galaxy/Lens api
docs are otherwise fully green (447 symbols verified).- Process gap:
PyAutoHeart/skills/audit_docs/SKILL.md's repo table omits
PyAutoCTI even though it has publisheddocs/api/— add it so future audits
don't silently skip the one repo that drifts.
Activity
Jammy2211 commentedon Nov 6, 2026
Shipped — 2026-11-06
PRs
Summary
docs/api/plot.rstwas rewritten for the functionalautocti.plotAPI;data.rstlost its 5 dead entries (the Grid entries were removed rather than re-exported);/audit_docsnow covers PyAutoCTI. Audit 84 entries / 53 dead → 64 / 0; sphinx-build warnings 159 (53 on api/) → 53 (0 on api/).Session Notes
Not changed here, for phase 3c:
docs/requirements.txtpinsautonerves==2024.11.6.1, anddocs/conf.pyclones PyAutoFit/PyAutoArray from the old personal-account URLs at build time.