Skip to content

feat: euclid mode — pipeline-paired skills + euclid literature wiki #73

Description

@Jammy2211

Overview

Extend autolens_assistant with a euclid mode: a domain layer that pairs the public euclid_strong_lens_modeling_pipeline (the collaboration-facing repo of standard Euclid modeling pipelines) to the assistant, plus a dedicated Euclid literature wiki covering both the strong-lensing Euclid papers and the mission/instrument/data papers. euclid_strong_lens_modeling_pipeline is being consolidated as the repo that reproduces the Euclid paper's results; once euclid mode is in place, real lenses will be modeled through it and the layer iterated against the science paper's needs. The euclid_assistant paper type-setting/editing tools are explicitly out of scope.

Plan

  • Phase 0 — pipeline cleanup: remove the no-longer-required profiling/ and skills/ folders from euclid_strong_lens_modeling_pipeline, sweeping any references. Small standalone PR.
  • Phase 1 — euclid skills layer: a euclid_*.md skills family in autolens_assistant pairing the pipeline's surfaces (setup/install, data preparation, the staged modeling scripts, workflow products, HPC runs) to the assistant, registered in skills/README.md with an AGENTS.md routing note.
  • Phase 2 — dedicated euclid literature wiki: autolens_assistant/wiki/euclid/ following the wiki/literature/ schema, populated with the strong-lensing, mission/instrument, EXT-survey and photo-z/ZPC papers; bib entries mined verbatim from euclid_assistant's euclid.bib.
  • Later (out of this task): model a small fraction of lenses through euclid mode and iterate on features the science paper needs.

Approved decisions: "mode" is implemented as skills + wiki (NOT a modes/ interaction preset — those stay teacher/assistant only). Euclid_DR1_impact_image_processing.pdf is ingested as a sources page + bib entry only; the PDF itself stays out of the public repo (collaboration-internal draft).

Detailed implementation plan

Affected Repositories

  • autolens_assistant (primary)
  • euclid_strong_lens_modeling_pipeline (Phase 0 cleanup; Phases 1–2 read-only pairing target)
  • euclid_assistant (read-only source: euclid.bib, 296 entries; also knowledge/sources/euclid_assets/euclid.bib)

Branch Survey

Repository Current Branch Dirty?
./autolens_assistant main clean
./euclid_strong_lens_modeling_pipeline main clean

Suggested branch: feature/assistant-euclid-mode
Work Classification: Workspace
Worktree root: ~/Code/PyAutoLabs-wt/assistant-euclid-mode/ (created by /start_workspace)

Implementation Steps

Phase 0 — euclid_strong_lens_modeling_pipeline cleanup (own PR)

  1. git rm -r profiling/ skills/ (profiling/ holds delaunay/simulator profiling scripts; skills/ holds a stale start-new-project copy).
  2. Sweep references: grep README.md, start_here.py, smoke_tests.txt, tests/, config/, __init__.py, activate.sh for profiling/skills mentions and update.
  3. Smoke-check nothing imports the removed modules.

Phase 1 — euclid skills layer in autolens_assistant (own PR)

  1. Read the pipeline end-to-end first: scripts/ (initial_lens_model.py, sersic_lens_model.py, mge_lens_only.py, lens_model_waveband.py, full_model.py), preprocess/, workflow/ (csv_make.py, fits_make.py, png_make.py), hpc/, dataset/, start_here.py, util.py — the skill inventory is finalized from what the scripts actually do.
  2. Author skills/euclid_*.md following skills/_style.md and _bootstrap_skill.md (Orient → Ask → Branch → Combine), expected shape:
    • euclid_setup_pipeline.md — clone/install the pipeline, activate.sh, dataset layout, start_here.py.
    • euclid_prepare_data.mdpreprocess/ → modeling-ready dataset; cutouts/PSF/noise conventions (per-tile, sky-coordinate-dependent PSFs).
    • euclid_model_lens.md — the staged modeling progression (initial_lens_modelsersic_lens_modelmge_lens_onlylens_model_wavebandfull_model); when to use which stage.
    • euclid_workflow_products.mdworkflow/ csv/fits/png result products.
    • euclid_hpc_runs.mdhpc/sync CLI, SLURM submission, pulling results.
      (Merge/split as the reading dictates; each skill cites pipeline paths as Project:path.)
  3. Register each skill in skills/README.md; add .claude/skills/ symlinks; add an AGENTS.md routing note so Euclid requests load the euclid layer.
  4. Run python autoassistant/audit_skill_apis.py over any PyAuto* code blocks in the new skills.

Phase 2 — wiki/euclid/ literature wiki (own PR)

  1. Mirror the wiki/literature/ schema (AGENTS.md there is canonical): index.md, concepts/, entities/, sources/, bibliography/.
  2. bibliography/euclid.bib: copy entries verbatim from euclid_assistant/euclid.bib for the papers below; resolve any missing ones from public ADS/arXiv metadata — never fabricate; keep bibkey_aliases.yaml mapping prompt-style names → canonical keys.
  3. Pages (paper list from the prompt):
    • entities/: euclid-mission (Mellier+25 = EuclidSkyOverview), vis (Cropper+25), nisp (Jahnke+25), euclid-wide-survey (Scaramella+22 Scaramella-EP1), q1/dr1 releases, ext-surveys (HSC Miyazaki+18, CFIS Ibata+17, Pan-STARRS Chambers+16, DES Abbott+21), ou-phz (Desprez+20 Desprez-EP10).
    • concepts/: euclid-psf (tile/sky-coordinate dependence — McCracken+25/26, Polenta+25/26), zero-point-corrections, psf-homogenisation / aperture photometry (Romelli+25, Boucaud+16 Wiener-filter kernels), euclid-photo-z (Tucci+25).
    • sources/: euclid-strong-lensing.md (Walmsley+25a, Rojas+25, Lines+25, Li+25, Holloway+25, Ecker+26 Q1-Ecker, Acevedo Barroso+25 AcevedoBarroso24, O'Riordan+25 ORiordan25), euclid-forecasts.md (Amara & Réfrégier 07, Ma+06, Huterer+06, Kitching+08), euclid-mission-data.md (Kümmel+26, Romelli+25, McCracken, Polenta, Desprez), euclid-dr1-image-processing.md (ingested from Euclid_DR1_impact_image_processing.pdf — content only, PDF NOT committed).
  4. Cross-link with [[slug]]; append provenance to log.md; link the euclid wiki from the Phase-1 skills.

Key Files

  • euclid_strong_lens_modeling_pipeline/profiling/, skills/ — removed (Phase 0)
  • autolens_assistant/skills/euclid_*.md — new skills family (Phase 1)
  • autolens_assistant/skills/README.md, AGENTS.md — registration + routing (Phase 1)
  • autolens_assistant/wiki/euclid/** — new sub-wiki (Phase 2)
  • euclid_assistant/euclid.bib — read-only bib source (296 entries)
  • autolens_assistant/wiki/literature/AGENTS.md — schema to mirror

Privacy notes

  • autolens_assistant is public: no PyAutoMemory references, no collaboration-internal PDFs, no personal content.
  • 2025/2026 Euclid Collaboration bib entries ride verbatim from the bib (public preprint metadata).

Original Prompt

Click to expand starting prompt

Extend autolens_assistant with a euclid mode

Type: feature
Target: workspaces
Repos:

  • autolens_assistant
  • euclid_assistant
  • euclid_strong_lens_modeling_pipeline
    Difficulty: too-large
    Autonomy: supervised
    Priority: high
    Status: formalised

In the project euclid_strong_lens_modeling_pipeline, we have all the examples used for modeling euclid data.
This is the github project I put standard pipelines out there to the collaobration so they can perform the
modeling themselves.

However, science was done at the path /mnt/c/Users/Jammy/Science/euclid, but this accumulated a lot of extra
scripts and code which is not really important for general Eulcid science.

I want to consoliate euclid_strong_lens_modeling_pipeline as a repo which has all the necessary code and infrastructure
to reproduce the resutls of the euclid paper. For now, lets assume euclid_strong_lens_modeling_pipeline is complete,
what I will do is I will gradually do a series of tasks in order to validate I get the results I want.

First remove the "profiling" and "skills" folders, which are no longer required.

The real task, is to extend the autolens_assistant with a "euclid" mode, which has the following aims:

  1. It uses the euclid_strong_lens_modeling_pipeline to model euclid data, which means it will need its own wiki of skills which
    pair the euclid modeling scripts to the assistant.

  2. For the literature have a dediciaged euclid_wiki which contains all the strong lensing euclid papers for reference
    but also non lensing euclid papers describing the instrument and other parts of the data.

Look in euclid_assistant/*/euclid.bib and use these papers:

Amara & Réfrégier 2007;
Euclid Collaboration: Mellier et al. 2025;
Ma et al. 2006; Huterer et al. 2006;
Kitching et al. 2008;
Euclid Collaboration: Tucci et al. 2025;
Euclid Collaboration: Cropper et al. 2025;
Euclid Collaboration: Jahnke et al. 2025;
Euclid Collaboration: Walmsley et al. 2025a;
Euclid Collaboration: Rojas et al. 2025;
Euclid Collaboration: Lines et al. 2025;
Euclid Collaboration: Li et al. 2025;
Euclid Collaboration: Holloway et al. 2025;
Euclid Collaboration: Ecker et al. 2026;
Euclid Collaboration: Romelli et al. 2025;
Euclid Collaboration: Kümmel et al. 2026

These papers describe EXT data which is part of Euclid Data:

Combining data from the Subaru Hyper Suprime Camera (HSC; Miyazaki et al. 2018) for the g and z bands; the
Canada–France Imaging Survey (CFIS; Ibata et al. 2017) for the u and r bands; and the Panoramic Survey
Telescope and Rapid Response System (Chambers et al. 2016, Pan-STARRS) for the i band. In the Southern
Hemisphere, we use imaging from the Dark Energy Survey (DES; Abbott et al. 2021) in the griz bands.

The PSF of a particular band is unique to the target depending on its tile and sky coordinates
(Euclid Collaboration: McCracken et al. 2025, 2026; Euclid Collaboration: Polenta et al. 2025, 2026).

The ZPCs were calculated by the Euclid Photometric-Redshift Organisation Unit (OU-PHZ; Euclid Collaboration:
Desprez et al. 2020).

Also put PyAutoLabs/Euclid_DR1_impact_image_processing.pdf in there.

The standard approach to calculate aperture photometry across multiple wavebands is to first homogenise the
PSFs by generating convolution kernels that match higher-resolution images to the lowest-resolution band.
For example, Euclid Collaboration: Romelli et al. (2025) employed the kernel creation algorithm of
Boucaud et al. (2016), which builds convolution kernels based on Wiener filtering with a tunable
regularisation parameter.

The Euclid satellite will detect 1.5 billion galaxies over the Euclid Wide Survey (EWS, Euclid Collaboration:
Mellier et al. 2025; Euclid Collaboration: Scaramella et al. 2022). With an area of 14 000 deg2 (Euclid
Collaboration: Mellier et al. 2025), a IE PSF of 0.16" (Euclid Collaboration: McCracken et al. 2026; Euclid
Collaboration: Cropper et al. 2025), as well as three near-infrared bands providing crucial colour
information (Euclid Collaboration: Jahnke et al. 2025), the survey will revolutionise strong lensing.

(Acevedo Barroso et al. 2025; O'Riordan et al. 2025)

There are lots of papers above with key context on euclid strong lensing but also the instruments, data,
photo-zs etc.

Look at the euclid_assistant but note that, for now, the goal is not to have its type setting and editing
tools for papers to make it into autolens_assistant — this is just to help euclid strong lens modeling.

Once euclid mode is in place, I will then start modeling a small fraction of lenses and we can iterate
on what features and functionality need adding given the science paper.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions