Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,11 @@ deliberate refactor). Two are NEVER overridden: the real-data gate and never-rew
bundled-dataset masks, exemptions: [`skills/al_prepare_imaging_data.md`](./skills/al_prepare_imaging_data.md). Simulated data is exempt.
- **Code gate.** A PreToolUse hook validates PyAuto* symbols against the installed library
and blocks ones written from memory. If blocked, don't guess — grep `skills/` or introspect
`dir()`, then re-run. (Manual run + bypass: [`skills/al_audit_skill_apis.md`](./skills/al_audit_skill_apis.md).)
`dir()`, then re-run. The hook fires only on harnesses with hook support (Claude Code);
**on any other harness (Codex, Gemini, OpenCode, Copilot, chat) self-enforce it**: run
`python autoassistant/audit_skill_apis.py --code "<snippet>"` (or `--file <script.py>`) on
generated PyAuto* code before executing it. (Manual run + bypass:
[`skills/al_audit_skill_apis.md`](./skills/al_audit_skill_apis.md).)
- **Never write into `output/`** (PyAutoFit runtime) **or `sources/`** (cloned repos);
agent-authored Python → `scripts/` or `scripts/scratch/`.
- **`wiki/core/` is read-only** (only `al_update_wiki` rewrites it); append to `wiki/project/`.
Expand Down
4 changes: 2 additions & 2 deletions autoassistant/refresh_api_docs.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,9 +50,9 @@ def main() -> int:
parser = argparse.ArgumentParser()
parser.add_argument(
"--scope",
choices=("skills", "wiki", "all"),
choices=("skills", "wiki", "scripts", "all"),
default="all",
help="Which maintenance surface to audit.",
help="Which maintenance surface to audit (matches audit_skill_apis.py --scope).",
)
args = parser.parse_args()

Expand Down
2 changes: 1 addition & 1 deletion skills/al_adaptive_pixelization.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ image as the adapt source.
pedagogical adaptive-pixelisation walkthrough.
- **General reference** — [RTD: overview_3_features](https://pyautolens.readthedocs.io/en/latest/overview/overview_3_features.html):
pixelisation feature section.
- **Experienced PyAutoLens user** — [workspace/lens: imaging/features/pixelization/adaptive.py](https://github.com/Jammy2211/autolens_workspace/blob/main/scripts/imaging/features/pixelization/adaptive.py):
- **Experienced PyAutoLens user** — [workspace/lens: imaging/features/pixelization/adaptive.py](https://github.com/PyAutoLabs/autolens_workspace/blob/main/scripts/imaging/features/pixelization/adaptive.py):
the canonical adaptive setup.

See also [`wiki/core/concepts/inversions_and_pixelizations.md`](../wiki/core/concepts/inversions_and_pixelizations.md)
Expand Down
2 changes: 1 addition & 1 deletion skills/al_aggregator_bulk_analysis.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ stacks (model image, residuals, source map) and PNG sets per fit.
lensing physics).
- **General reference** — [RTD: overview_3_features](https://pyautolens.readthedocs.io/en/latest/overview/overview_3_features.html):
results / aggregator section.
- **Experienced PyAutoLens user** — [workspace/lens: guides/results/start_here.py](https://github.com/Jammy2211/autolens_workspace/blob/main/scripts/guides/results/start_here.py):
- **Experienced PyAutoLens user** — [workspace/lens: guides/results/start_here.py](https://github.com/PyAutoLabs/autolens_workspace/blob/main/scripts/guides/results/start_here.py):
the entry point — sub-folders cover aggregator, database, workflow
outputs.

Expand Down
2 changes: 1 addition & 1 deletion skills/al_build_imaging_model.md
Original file line number Diff line number Diff line change
Expand Up @@ -162,6 +162,6 @@ Natural next steps:
- **General reference** — [RTD: Model cookbook](https://pyautolens.readthedocs.io/en/latest/general/model_cookbook.html):
systematic reference for building lens models with `Model` and `Collection` —
two-component to multi-galaxy, prior customisation, parameter pairing, MGE.
- **Experienced PyAutoLens user** — [workspace/lens: imaging/modeling/start_here.py](https://github.com/Jammy2211/autolens_workspace/blob/main/scripts/imaging/modeling/start_here.py):
- **Experienced PyAutoLens user** — [workspace/lens: imaging/modeling/start_here.py](https://github.com/PyAutoLabs/autolens_workspace/blob/main/scripts/imaging/modeling/start_here.py):
the canonical imaging-modeling script — light-profile choice (Sersic vs. MGE),
non-linear-search configuration, JAX/GPU fitting.
2 changes: 1 addition & 1 deletion skills/al_build_interferometer_model.md
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,6 @@ for a complete example.
- **General reference** — [RTD: Features overview](https://pyautolens.readthedocs.io/en/latest/overview/overview_3_features.html):
tour of advanced features including interferometry, where the visibility-plane fit
fits alongside MGE / pixelization / multi-wavelength capabilities.
- **Experienced PyAutoLens user** — [workspace/lens: interferometer/start_here.py](https://github.com/Jammy2211/autolens_workspace/blob/main/scripts/interferometer/start_here.py):
- **Experienced PyAutoLens user** — [workspace/lens: interferometer/start_here.py](https://github.com/PyAutoLabs/autolens_workspace/blob/main/scripts/interferometer/start_here.py):
canonical strong-lens fit of radio/mm interferometer data — NUFFT-based forward
model, scaling to millions of visibilities.
2 changes: 1 addition & 1 deletion skills/al_chain_searches.md
Original file line number Diff line number Diff line change
Expand Up @@ -148,5 +148,5 @@ doesn't match your problem.
- **General reference** — [RTD: Model cookbook](https://pyautolens.readthedocs.io/en/latest/general/model_cookbook.html):
systematic reference for inheriting and adjusting priors between models, the
mechanical core of chaining.
- **Experienced PyAutoLens user** — [workspace/lens: guides/modeling/slam_start_here.py](https://github.com/Jammy2211/autolens_workspace/blob/main/scripts/guides/modeling/slam_start_here.py):
- **Experienced PyAutoLens user** — [workspace/lens: guides/modeling/slam_start_here.py](https://github.com/PyAutoLabs/autolens_workspace/blob/main/scripts/guides/modeling/slam_start_here.py):
SLaM is the canonical multi-phase chain; this script overviews it stage-by-stage.
2 changes: 1 addition & 1 deletion skills/al_cluster_csv_api.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ fit.
lensing is research-grade).
- **General reference** — [RTD: overview_3_features](https://pyautolens.readthedocs.io/en/latest/overview/overview_3_features.html):
cluster lensing in the feature tour.
- **Experienced PyAutoLens user** — [workspace/lens: cluster/csv_api.py](https://github.com/Jammy2211/autolens_workspace/blob/main/scripts/cluster/csv_api.py):
- **Experienced PyAutoLens user** — [workspace/lens: cluster/csv_api.py](https://github.com/PyAutoLabs/autolens_workspace/blob/main/scripts/cluster/csv_api.py):
the canonical CSV schema + round-trip demo.

See also [`wiki/core/api/csv_api.md`](../wiki/core/api/csv_api.md) for the
Expand Down
2 changes: 1 addition & 1 deletion skills/al_configure_search.md
Original file line number Diff line number Diff line change
Expand Up @@ -136,6 +136,6 @@ See [`al_load_results`](./al_load_results.md) for the inverse — loading what
- **General reference** — [RTD: Features overview](https://pyautolens.readthedocs.io/en/latest/overview/overview_3_features.html):
tour of advanced capabilities; search configuration interacts directly with most
of them (especially pixelization, MGE, point-source).
- **Experienced PyAutoLens user** — [workspace/lens: guides/modeling/slam_start_here.py](https://github.com/Jammy2211/autolens_workspace/blob/main/scripts/guides/modeling/slam_start_here.py):
- **Experienced PyAutoLens user** — [workspace/lens: guides/modeling/slam_start_here.py](https://github.com/PyAutoLabs/autolens_workspace/blob/main/scripts/guides/modeling/slam_start_here.py):
the SLaM pipeline pre-configures sensible searches per stage — a reference for
*which* knobs matter at *which* phase.
2 changes: 1 addition & 1 deletion skills/al_custom_analysis.md
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ external prior on a derived quantity). Source:
- **Student / new to lensing** — _ (advanced PyAutoFit topic).
- **General reference** — [RTD: overview_3_features](https://pyautolens.readthedocs.io/en/latest/overview/overview_3_features.html):
analysis customisation in the feature tour.
- **Experienced PyAutoLens user** — [workspace/lens: guides/advanced/custom_analysis.py](https://github.com/Jammy2211/autolens_workspace/blob/main/scripts/guides/advanced/custom_analysis.py):
- **Experienced PyAutoLens user** — [workspace/lens: guides/advanced/custom_analysis.py](https://github.com/PyAutoLabs/autolens_workspace/blob/main/scripts/guides/advanced/custom_analysis.py):
the canonical custom-analysis walkthrough.

See also [`wiki/core/api/analysis_objects.md`](../wiki/core/api/analysis_objects.md)
Expand Down
2 changes: 1 addition & 1 deletion skills/al_custom_profile.md
Original file line number Diff line number Diff line change
Expand Up @@ -201,6 +201,6 @@ extends (`ag.lp.Sersic` with the same parameters). For mass profiles do the same
- **General reference** — [RTD: Model cookbook](https://pyautolens.readthedocs.io/en/latest/general/model_cookbook.html):
systematic model-composition reference; covers using non-standard profiles
inside `Model` and `Collection`.
- **Experienced PyAutoLens user** — [workspace/lens: guides/profiles/light.py](https://github.com/Jammy2211/autolens_workspace/blob/main/scripts/guides/profiles/light.py):
- **Experienced PyAutoLens user** — [workspace/lens: guides/profiles/light.py](https://github.com/PyAutoLabs/autolens_workspace/blob/main/scripts/guides/profiles/light.py):
catalog of the built-in light profiles in `al.lp.*` — the patterns your subclass
should match.
2 changes: 1 addition & 1 deletion skills/al_datacube_modeling.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ intensities — useful for line-emission morphology.
- **Student / new to lensing** — _ (specialist workflow).
- **General reference** — [RTD: overview_3_features](https://pyautolens.readthedocs.io/en/latest/overview/overview_3_features.html):
interferometer / datacube feature section.
- **Experienced PyAutoLens user** — [workspace/lens: interferometer/features/datacube/start_here.py](https://github.com/Jammy2211/autolens_workspace/blob/main/scripts/interferometer/features/datacube/start_here.py):
- **Experienced PyAutoLens user** — [workspace/lens: interferometer/features/datacube/start_here.py](https://github.com/PyAutoLabs/autolens_workspace/blob/main/scripts/interferometer/features/datacube/start_here.py):
the canonical datacube walkthrough.

See also [`wiki/core/api/datacube.md`](../wiki/core/api/datacube.md) for
Expand Down
2 changes: 1 addition & 1 deletion skills/al_debug_fit_failure.md
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,6 @@ inputs — [`al_run_search`](./al_run_search.md) — and re-loading the new resu
- **General reference** — [RTD: Demagnified solutions](https://pyautolens.readthedocs.io/en/latest/general/demagnified_solutions.html):
how unphysical demagnified-source reconstructions arise in pixelised fits, and how
`PositionsLH` penalties prevent them.
- **Experienced PyAutoLens user** — [workspace/lens: guides/tracer.py](https://github.com/Jammy2211/autolens_workspace/blob/main/scripts/guides/tracer.py):
- **Experienced PyAutoLens user** — [workspace/lens: guides/tracer.py](https://github.com/PyAutoLabs/autolens_workspace/blob/main/scripts/guides/tracer.py):
inspecting an inferred model via `Tracer` — the patterns this skill uses to
pull apart a failed fit.
2 changes: 1 addition & 1 deletion skills/al_group_lensing.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ the scaling relation. Composed in one model.
lensing is an advanced topic).
- **General reference** — [RTD: overview_3_features](https://pyautolens.readthedocs.io/en/latest/overview/overview_3_features.html):
group lensing in the feature tour.
- **Experienced PyAutoLens user** — [workspace/lens: group/start_here.py](https://github.com/Jammy2211/autolens_workspace/blob/main/scripts/group/start_here.py):
- **Experienced PyAutoLens user** — [workspace/lens: group/start_here.py](https://github.com/PyAutoLabs/autolens_workspace/blob/main/scripts/group/start_here.py):
the canonical group fit — extra galaxies, scaling relations, group
SLaM.

Expand Down
2 changes: 1 addition & 1 deletion skills/al_hierarchical_inference.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ Workspace path: `autolens_workspace:scripts/guides/modeling/advanced/hierarchica
- **Student / new to lensing** — _ (advanced PyAutoFit topic).
- **General reference** — [RTD: overview_3_features](https://pyautolens.readthedocs.io/en/latest/overview/overview_3_features.html):
graphical models in the feature tour.
- **Experienced PyAutoLens user** — [workspace/lens: guides/modeling/advanced/hierarchical.py](https://github.com/Jammy2211/autolens_workspace/blob/main/scripts/guides/modeling/advanced/hierarchical.py):
- **Experienced PyAutoLens user** — [workspace/lens: guides/modeling/advanced/hierarchical.py](https://github.com/PyAutoLabs/autolens_workspace/blob/main/scripts/guides/modeling/advanced/hierarchical.py):
canonical hierarchical setup; sibling files cover graphical models and
expectation propagation.

Expand Down
4 changes: 2 additions & 2 deletions skills/al_inspect_source_reconstruction.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ function-style plot API is documented in
> `KNNBarycentric` crash inside `FitImaging` (`'NoneType' object has no attribute
> 'array'`), and `ConstantSplit` is broken on `RectangularUniform`. Use
> `al.mesh.RectangularUniform` + `al.reg.Constant` for now; tracking:
> <https://github.com/Jammy2211/PyAutoArray/issues/332>.
> <https://github.com/PyAutoLabs/PyAutoArray/issues/332>.

## Branch — source-plane reconstruction

Expand Down Expand Up @@ -154,6 +154,6 @@ appear.
- **General reference** — [RTD: Features overview](https://pyautolens.readthedocs.io/en/latest/overview/overview_3_features.html):
the pixelization feature sits here alongside MGE / interferometry / shapelets —
links into deeper docs.
- **Experienced PyAutoLens user** — [workspace/lens: imaging/features/pixelization/modeling.py](https://github.com/Jammy2211/autolens_workspace/blob/main/scripts/imaging/features/pixelization/modeling.py):
- **Experienced PyAutoLens user** — [workspace/lens: imaging/features/pixelization/modeling.py](https://github.com/PyAutoLabs/autolens_workspace/blob/main/scripts/imaging/features/pixelization/modeling.py):
rectangular-mesh + constant-regularization pixelization model — production
pattern for extended-arc sources.
2 changes: 1 addition & 1 deletion skills/al_load_results.md
Original file line number Diff line number Diff line change
Expand Up @@ -198,6 +198,6 @@ Sub-paths vary for interferometer / multi-wavelength fits.
- **General reference** — [RTD: Likelihood function](https://pyautolens.readthedocs.io/en/latest/general/likelihood_function.html):
how PyAutoLens computes likelihoods — useful when interpreting a loaded
`samples.csv` or `model.results`.
- **Experienced PyAutoLens user** — [workspace/lens: guides/results/start_here.py](https://github.com/Jammy2211/autolens_workspace/blob/main/scripts/guides/results/start_here.py):
- **Experienced PyAutoLens user** — [workspace/lens: guides/results/start_here.py](https://github.com/PyAutoLabs/autolens_workspace/blob/main/scripts/guides/results/start_here.py):
loading single fits from JSON/CSV and the aggregator pattern for hundreds of fits
at once.
2 changes: 1 addition & 1 deletion skills/al_mge_decomposition.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ useful for stellar-dynamics-style decompositions.
HowToLens has its own chapter for).
- **General reference** — [RTD: overview_3_features](https://pyautolens.readthedocs.io/en/latest/overview/overview_3_features.html):
MGE in the feature tour.
- **Experienced PyAutoLens user** — [workspace/lens: imaging/features/multi_gaussian_expansion/modeling.py](https://github.com/Jammy2211/autolens_workspace/blob/main/scripts/imaging/features/multi_gaussian_expansion/modeling.py):
- **Experienced PyAutoLens user** — [workspace/lens: imaging/features/multi_gaussian_expansion/modeling.py](https://github.com/PyAutoLabs/autolens_workspace/blob/main/scripts/imaging/features/multi_gaussian_expansion/modeling.py):
the canonical MGE modeling script; sibling files cover SLaM, fit,
likelihood.

Expand Down
2 changes: 1 addition & 1 deletion skills/al_multi_dataset.md
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ set the wavelength-varying parameter from a shared relation (e.g. a linear
- **Student / new to lensing** — _ (no direct HowToLens chapter).
- **General reference** — [RTD: overview_3_features](https://pyautolens.readthedocs.io/en/latest/overview/overview_3_features.html):
multi-dataset section.
- **Experienced PyAutoLens user** — [workspace/lens: multi/start_here.py](https://github.com/Jammy2211/autolens_workspace/blob/main/scripts/multi/start_here.py):
- **Experienced PyAutoLens user** — [workspace/lens: multi/start_here.py](https://github.com/PyAutoLabs/autolens_workspace/blob/main/scripts/multi/start_here.py):
the canonical multi-dataset walkthrough; features/ folder has
per-scenario examples.

Expand Down
2 changes: 1 addition & 1 deletion skills/al_plot_fit_residuals.md
Original file line number Diff line number Diff line change
Expand Up @@ -140,5 +140,5 @@ what each residual pattern usually means physically. Common cases:
- **General reference** — [RTD: Likelihood function](https://pyautolens.readthedocs.io/en/latest/general/likelihood_function.html):
how PyAutoLens computes the likelihood the residuals contribute to — useful for
interpreting structured residuals statistically.
- **Experienced PyAutoLens user** — [workspace/lens: imaging/results/start_here.py](https://github.com/Jammy2211/autolens_workspace/blob/main/scripts/imaging/results/start_here.py):
- **Experienced PyAutoLens user** — [workspace/lens: imaging/results/start_here.py](https://github.com/PyAutoLabs/autolens_workspace/blob/main/scripts/imaging/results/start_here.py):
production-quality fit inspection — residuals, chi-squared, FITS exports.
2 changes: 1 addition & 1 deletion skills/al_plot_tracer.md
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,6 @@ explanation.
- **General reference** — [RTD: Start here](https://pyautolens.readthedocs.io/en/latest/overview/overview_1_start_here.html):
the `Tracer` object in action — building one, evaluating it on a grid, plotting
the result.
- **Experienced PyAutoLens user** — [workspace/lens: guides/tracer.py](https://github.com/Jammy2211/autolens_workspace/blob/main/scripts/guides/tracer.py):
- **Experienced PyAutoLens user** — [workspace/lens: guides/tracer.py](https://github.com/PyAutoLabs/autolens_workspace/blob/main/scripts/guides/tracer.py):
full pattern for inspecting an inferred `Tracer` — ray tracing, profiles, numpy
arrays, visualization.
2 changes: 1 addition & 1 deletion skills/al_point_source.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ H0-inference workflow built on top of this.
positions-only fitting looks like in isolation.
- **General reference** — [RTD: overview_3_features](https://pyautolens.readthedocs.io/en/latest/overview/overview_3_features.html):
short PointDataset / AnalysisPoint section in the feature tour.
- **Experienced PyAutoLens user** — [workspace/lens: point_source/start_here.py](https://github.com/Jammy2211/autolens_workspace/blob/main/scripts/point_source/start_here.py):
- **Experienced PyAutoLens user** — [workspace/lens: point_source/start_here.py](https://github.com/PyAutoLabs/autolens_workspace/blob/main/scripts/point_source/start_here.py):
full point-source fitting walkthrough — dataset, model, analysis, fit
inspection.

Expand Down
2 changes: 1 addition & 1 deletion skills/al_prepare_imaging_data.md
Original file line number Diff line number Diff line change
Expand Up @@ -197,5 +197,5 @@ If you're new to *what* this dataset represents physically, read
- **General reference** — [RTD: New user guide](https://pyautolens.readthedocs.io/en/latest/overview/overview_2_new_user_guide.html):
decision-tree routing by lens scale and data type — orients a new PyAutoLens user
before they touch FITS data.
- **Experienced PyAutoLens user** — [workspace/lens: imaging/data_preparation/start_here.py](https://github.com/Jammy2211/autolens_workspace/blob/main/scripts/imaging/data_preparation/start_here.py):
- **Experienced PyAutoLens user** — [workspace/lens: imaging/data_preparation/start_here.py](https://github.com/PyAutoLabs/autolens_workspace/blob/main/scripts/imaging/data_preparation/start_here.py):
canonical reference for getting telescope data analysis-ready.
2 changes: 1 addition & 1 deletion skills/al_run_search.md
Original file line number Diff line number Diff line change
Expand Up @@ -132,5 +132,5 @@ tail -f output/imaging/<your_lens>/sie_sersic/*/search.log
managing run times.
- **General reference** — [RTD: New user guide](https://pyautolens.readthedocs.io/en/latest/overview/overview_2_new_user_guide.html):
decision-tree routing for a new user about which fit to run first.
- **Experienced PyAutoLens user** — [workspace/lens: imaging/start_here.py](https://github.com/Jammy2211/autolens_workspace/blob/main/scripts/imaging/start_here.py):
- **Experienced PyAutoLens user** — [workspace/lens: imaging/start_here.py](https://github.com/PyAutoLabs/autolens_workspace/blob/main/scripts/imaging/start_here.py):
the minimal end-to-end imaging fit on GPU — production pattern this skill mirrors.
2 changes: 1 addition & 1 deletion skills/al_run_slam_pipeline.md
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,6 @@ all 4+ phases will short-circuit, but you'll catch import / config errors fast.
- **General reference** — [RTD: Features overview](https://pyautolens.readthedocs.io/en/latest/overview/overview_3_features.html):
SLaM sits alongside pixelization, MGE, subhalo detection and multi-wavelength on
the feature tour.
- **Experienced PyAutoLens user** — [workspace/lens: guides/modeling/slam_start_here.py](https://github.com/Jammy2211/autolens_workspace/blob/main/scripts/guides/modeling/slam_start_here.py):
- **Experienced PyAutoLens user** — [workspace/lens: guides/modeling/slam_start_here.py](https://github.com/PyAutoLabs/autolens_workspace/blob/main/scripts/guides/modeling/slam_start_here.py):
the canonical SLaM invocation script — all other SLaM scripts in the workspace are
documented relative to it.
Loading
Loading