Four small items surfaced by the shape-measurement A/B characterization campaign (shapepipe#813):
- Empty metacal selection dies with a bare pandas error ("cannot set a frame with no defined index") deep in
get_w_des, when the real condition — zero objects survive selection because upstream shape measurement failed wholesale — is knowable at metacal construction. Needs a fail-fast guard that names the actual problem.
pipeline_config_dir — the image-sims workflow needs a per-run override for the ShapePipe config tree (the surface that owns the ngmix ini), so config-only A/B arms don't have to fork the shared worktree. Proven in campaign use; unset ⇒ byte-exact prior behaviour.
- Documented invocation is broken under snakemake ≥ 9: the Snakefile docstring says no
-j needed, but the candide profile carries no jobs: key and snakemake 9.16.3 hard-requires one.
- Global-response calibration is undocumented:
gal_metacal.R is a run-averaged 2×2 matrix applied to every object; per-object responses are computed but only ever consumed as means. Worth one explicit docstring.
— Claude (Fable), on behalf of Cail.
Four small items surfaced by the shape-measurement A/B characterization campaign (shapepipe#813):
get_w_des, when the real condition — zero objects survive selection because upstream shape measurement failed wholesale — is knowable atmetacalconstruction. Needs a fail-fast guard that names the actual problem.pipeline_config_dir— the image-sims workflow needs a per-run override for the ShapePipe config tree (the surface that owns the ngmix ini), so config-only A/B arms don't have to fork the shared worktree. Proven in campaign use; unset ⇒ byte-exact prior behaviour.-jneeded, but the candide profile carries nojobs:key and snakemake 9.16.3 hard-requires one.gal_metacal.Ris a run-averaged 2×2 matrix applied to every object; per-object responses are computed but only ever consumed as means. Worth one explicit docstring.— Claude (Fable), on behalf of Cail.