feat(skills): author the ac_* CTI calibration skill set (Phase 2)#2
Merged
Conversation
Grow the lightweight seed into a working assistant: nine skills covering the CTI calibration pipeline end-to-end, each grounded in a validated autocti_workspace script rather than API memory, and each verified against the live stack. Skills: ac_setup_environment — install the stack incl. arcticpy (the #1 failure) ac_workspace_navigation — the map: two geometries, shared stage pipeline ac_simulate_dataset_1d — simulate a 1D CTI dataset with a known trap model ac_simulate_imaging_ci — simulate a 2D charge-injection image (Clocker2D) ac_mask_and_extract — mask FPR/EPER; extract regions via layout.extract ac_fit_cti_model — compose + fit, incl. the AnalysisFactor / FactorGraphModel joint fit over several charge lines (the core capability) ac_correct_cti — clocker.remove_cti, for correction + calibration diagnosis ac_plot — the autocti.plot function API (no MatPlot/Output object) ac_load_results — result objects + the aggregator (ac.agg.CTIAgg generators) Wiring: symlinked into .claude/skills/, indexed in a rewritten skills/README.md (the old index was the autolens catalogue with al_->ac_ substitution, listing 45 skills of which only 13 files existed — now an honest CTI catalogue pointing at PENDING.md for the growth queue), matching PENDING entries removed. Grounding surfaced two facts worth recording: the aggregator is ac.agg.CTIAgg (the seed prompt guessed Dataset1DAgg — both exist, CTIAgg is what the scripts use), and the plot scripts live at scripts/plot/, not per-geometry. Validation (audit_skill_apis.py against the live CTI stack): --scope all PASS (0 broken across 33 symbols) --check-citations PASS (0 missing across 27 citations) --lint-idioms PASS --check-provenance PASS --check-version PASS — wrote wiki/core/api_audit_baseline.json, pinning the four-module CTI stack (no autogalaxy) at the current main. Also fixes the pre-existing _style.md lensing-path citation (scripts/imaging/ -> scripts/dataset_1d/modeling/), a seed content leak. Part of #136 (Phase 2). Wiki (Phase 3) and demonstrations (Phase 4) still to come. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Phase 2 of the autocti_assistant epic (PyAutoBrain#136). Grows the lightweight
seed into a working assistant: nine skills covering the CTI calibration
pipeline end-to-end, each grounded in a validated
autocti_workspacescript andverified against the live stack.
The skills
ac_setup_environmentPyAutoCTI:AGENTS.md,smoke_install.shac_workspace_navigationautocti_workspacetreeac_simulate_dataset_1ddataset_1d/simulators/start_here.pyac_simulate_imaging_ciClocker2D)imaging_ci/simulators/start_here.pyac_mask_and_extractlayout.extract.fpr/eperdataset_1d/{modeling,extract}ac_fit_cti_modelAnalysisFactor/FactorGraphModeljoint fitdataset_1d/modeling/start_here.pyac_correct_cticlocker.remove_ctifor correction + diagnosisdataset_1d/correction/start_here.pyac_plotautocti.plotfunction API (no MatPlot/Output object)scripts/plot/start_here.pyac_load_resultsresultobjects + the aggregator (ac.agg.CTIAgg)dataset_1d/results/Wired into
.claude/skills/(symlinks), indexed in a rewrittenskills/README.md— the old index was the autolens catalogue withal_→ac_substitution, listing 45 skills of which only 13 files existed; it now honestly
describes the CTI catalogue and points at
PENDING.mdfor the growth queue.Grounding beat the prompt's assumptions twice
ac.agg.CTIAgg, notDataset1DAggas the seed promptguessed (both exist;
CTIAggis what the scripts use).scripts/plot/, not per-geometry — my first draftcited
scripts/dataset_1d/plot/and the citation check caught it.Validation — every wiki-currency check green
Run with
audit_skill_apis.pyagainst the live CTI stack:The audit earned its keep three times: it caught
aplt.Outputandanalysis + analysiswritten in prose to say they're gone (rephrased so theparser doesn't read them as live symbols), a wildcard
aplt.subplot_*token, andthe wrong plot-script paths.
Also fixes the pre-existing
_style.mdlensing-path citation(
scripts/imaging/→scripts/dataset_1d/modeling/), the last seed content leakthe earlier PR flagged.
Expected CI
wiki-currencyshould now go green — the reason it was red on the seed-infraPR (no baseline) is resolved, and every check above passes locally against the
same main source the CI installs.
boundaryskips (not a clone reference).Part of #136 (Phase 2). Wiki (Phase 3) and end-to-end demonstrations (Phase 4)
still to come; the newborn stays private until then.