/ CHANGES.txt
CHANGES.txt
  1  v<0.1.0>, <05/20/2018> -- Initial release.
  2  v<0.1.1>, <05/20/2018> -- Hot fixes for broken documentation.
  3  v<0.1.2>, <05/20/2018> -- Hot fixes for broken dependency.
  4  v<0.1.3>, <05/21/2018> -- Function Signature Improvement.
  5  v<0.2.0>, <05/23/2018> -- Implement tests and improve stability.
  6  v<0.2.1>, <05/23/2018> -- Remove data loading func due to broken dependency.
  7  v<0.2.2>, <05/24/2018> -- Refactor models and add more testcases
  8  v<0.2.3>, <05/26/2018> -- Add more testcases.
  9  v<0.3.0>, <05/27/2018> -- Provide full documentation.
 10  v<0.3.1>, <05/28/2018> -- Add more complete coverage for Py3.5+.
 11  v<0.3.2>, <05/29/2018> -- Implement fastABOD and added more documentations.
 12  v<0.3.3>, <05/29/2018> -- Urgent bug fix.
 13  v<0.3.4>, <05/29/2018> -- Another urgent bug fix.
 14  v<0.4.0>, <05/31/2018> -- Refactor all models to be sklearn compatible.
 15  v<0.4.1>, <06/01/2018> -- Support Python 2.7, 3.4, 3.5 and 3.6.
 16  v<0.4.2>, <06/01/2018> -- Fix Python 2.7 installation issue.
 17  v<0.4.3>, <06/02/2018> -- Add more models and refactored examples.
 18  v<0.4.4>, <06/03/2018> -- Refactor HBOS and add new models.
 19  v<0.4.5>, <06/04/2018> -- Implemented Feature Bagging meta framework.
 20  v<0.4.6>, <06/05/2018> -- Incremental changes and documentation improvements.
 21  v<0.4.7>, <06/06/2018> -- Add Principal Component Analysis (PCA) detector.
 22  v<0.4.8>, <06/07/2018> -- Refactor documentation and add test cases.
 23  v<0.4.9>, <06/09/2018> -- Add new utility functions and improve documentations.
 24  v<0.5.0>, <06/10/2018> -- Refactor models and improve documentation.
 25  v<0.5.1>, <06/12/2018> -- Add MCD detector and more Jupyter notebooks.
 26  v<0.5.2>, <06/13/2018> -- Incremental changes.
 27  v<0.5.3>, <06/14/2018> -- Incremental changes.
 28  v<0.5.4>, <06/18/2018> -- Add CBLOF model and incremental improvements.
 29  v<0.5.7>, <09/03/2018> -- Add AutoEncoder with fully connected architecture.
 30  v<0.5.8>, <09/04/2018> -- Remove keras, tensorflow and matplotlib as dependency.
 31  v<0.5.9>, <09/04/2018> -- Optimize models with numba for fast execution.
 32  v<0.6.0>, <10/19/2018> -- Update LOF due to the changes in sklearn 0.20.0.
 33  v<0.6.1>, <11/03/2018> -- Inclusion of Python 3.7 & welcome Zain Nasrullah.
 34  v<0.6.1>, <11/10/2018> -- Incremental changes and official release of 0.6.1.
 35  v<0.6.2>, <11/19/2018> -- Refactor base class to decrease cognitive complexity.
 36  v<0.6.2>, <11/24/2018> -- Add maintainability check and Appveyor CI.
 37  v<0.6.2>, <11/24/2018> -- Add LSCP implementation (WIP).
 38  v<0.6.3>, <11/26/2018> -- Move from README.md to README.rst.
 39  v<0.6.4>, <11/26/2018> -- Refactor version file for Python 2 compatibility.
 40  v<0.6.5>, <11/27/2018> -- Update README.rst Reference section.
 41  v<0.6.5>, <11/28/2018> -- Add Stochastic Outlier Selection (SOS).
 42  v<0.6.5>, <11/30/2018> -- Add CircleCI continuous integration.
 43  v<0.6.5>, <12/03/2018> -- Add Local Correlation Integral (LOCI).
 44  v<0.6.6>, <12/06/2018> -- Add LSCP (production version).
 45  v<0.6.6>, <12/08/2018> -- Add XGBOD.
 46  v<0.6.6>, <12/18/2018> -- Fixed bugs in CBLOF.
 47  v<0.6.6>, <12/18/2018> -- Refactor docstring from rst to numpydoc.
 48  v<0.6.6b1>, <12/18/2018> -- Pre-release of V0.6.6.
 49  v<0.6.6>, <12/21/2018> -- Redesign visualize function for all examples.
 50  v<0.6.6>, <12/23/2018> -- Refactor all docstring to numpydoc.
 51  v<0.6.7>, <12/25/2018> -- Documentation clean-up.
 52  v<0.6.7>, <12/25/2018> -- Optimize LOCI with numba.
 53  v<0.6.7>, <12/26/2018> -- Refactor Feature Bagging and GAAL based models.
 54  v<0.6.7>, <12/27/2018> -- Refactor test cases for better coverage.
 55  v<0.6.7>, <12/28/2018> -- Redesign visualize function for all examples.
 56  v<0.6.7>, <12/30/2018> -- Add new models to jupyter notebook and benchmark.
 57  v<0.6.8>, <01/31/2019> -- Optimize unit tests for faster execution.
 58  v<0.6.8>, <02/08/2019> -- Update docs with media coverage.
 59  v<0.6.8>, <02/10/2019> -- Fix issue in CBLOF for n_cluster discrepancy.
 60  v<0.6.8>, <02/10/2019> -- Minor doc improvement and stability enhancement.
 61  v<0.6.9>, <03/12/2019> -- Major documentation update for JMLR.
 62  v<0.6.9>, <03/12/2019> -- Change CI tool env variable setting.
 63  v<0.6.9>, <03/18/2019> -- Update SOS default parameter setting and documentation.
 64  v<0.6.9>, <03/29/2019> -- Refactor visualize function (moved to utils).
 65  v<0.6.9>, <03/30/2019> -- Add License info and show support to 996.ICU!
 66  v<0.6.9>, <04/08/2019> -- Redesign ReadMe for clarity.
 67  v<0.6.9>, <04/08/2019> -- Deprecate fit_predict and fit_predict_score function.
 68  v<0.6.9>, <04/10/2019> -- Add inclusion criteria and Python 2.7 retirement notice.
 69  v<0.7.0>, <04/18/2019> -- Fix issue #23 that kNN fails with Mahalanobis distance.
 70  v<0.7.0>, <04/20/2019> -- Fix for sklearn new behaviour FutureWarning.
 71  v<0.7.0>, <04/29/2019> -- Refactor #76 (generate_data_clusters).
 72  v<0.7.1>, <05/13/2019> -- Fix installation errors caused by sklearn 0.21.
 73  v<0.7.2>, <05/27/2019> -- Enhanced CI integration.
 74  v<0.7.2>, <05/29/2019> -- Add Connectivity-Based Outlier Factor (COF).
 75  v<0.7.2>, <05/29/2019> -- Bug fixes in LSCP and minor documentation updates.
 76  v<0.7.3>, <06/10/2019> -- Update documentation.
 77  v<0.7.3>, <06/12/2019> -- Add Subspace Outlier Detection (SOD).
 78  v<0.7.3>, <06/12/2019> -- Fix bugs in SO_GAAL and MO_GAAL.
 79  v<0.7.4>, <07/10/2019> -- Fix bugs and update documentation.
 80  v<0.7.4>, <07/17/2019> -- Update dependency (six and joblib).
 81  v<0.7.4>, <07/19/2019> -- Update deprecation information.
 82  v<0.7.5>, <09/24/2019> -- Fix one dimensional data error in LSCP.
 83  v<0.7.5>, <10/13/2019> -- Document kNN and Isolation Forest's incoming changes.
 84  v<0.7.5>, <10/13/2019> -- SOD optimization (created by John-Almardeny in June).
 85  v<0.7.5>, <10/13/2019> -- Documentation updates.
 86  v<0.7.5.1>, <10/15/2019> -- kNN code optimization.
 87  v<0.7.5.1>, <12/05/2019> -- Hot fix for scikit-learn 0.22 update. To be complete.
 88  v<0.7.5.1>, <12/05/2019> -- Disable CircleCI for Python 2.7.
 89  v<0.7.6>, <12/18/2019> -- Update Isolation Forest and LOF to be consistent with sklearn 0.22.
 90  v<0.7.6>, <12/18/2019> -- Add Deviation-based Outlier Detection (LMDD).
 91  v<0.7.7>, <12/21/2019> -- Refactor code for combination simplification on combo.
 92  v<0.7.7>, <12/21/2019> -- Extended combination methods by median and majority vote.
 93  v<0.7.7>, <12/22/2019> -- Code optimization and documentation update.
 94  v<0.7.7>, <12/22/2019> -- Enable continuous integration for Python 3.7.
 95  v<0.7.7.1>, <12/29/2019> -- Minor update for SUOD and warning fixes.
 96  v<0.7.8>, <01/05/2019> -- Documentation update.
 97  v<0.7.8>, <01/30/2019> -- Bug fix for kNN (#158).
 98  v<0.7.8>, <03/14/2020> -- Add VAE (implemented by Dr Andrij Vasylenko).
 99  v<0.7.8>, <03/17/2020> -- Add LODA (adapted from tilitools).
100  v<0.7.8.1>, <04/07/2020> -- Hot fix for SOD.
101  v<0.7.8.2>, <04/14/2020> -- Bug Fix for LODA.
102  v<0.7.9>, <04/20/2020> -- Relax the number of n_neighbors in ABOD and COF.
103  v<0.7.9>, <05/01/2020> -- Extend Vanilla VAE to Beta VAE by Dr Andrij Vasylenko.
104  v<0.7.9>, <05/01/2020> -- Add Conda Badge.
105  v<0.8.0>, <05/18/2020> -- Update test frameworks by reflecting sklearn change.
106  v<0.8.1>, <07/01/2020> -- Bug fix and documentation update.
107  v<0.8.2>, <07/04/2020> -- Add a set of utility functions.
108  v<0.8.2>, <08/30/2020> -- Add COPOD and MAD algorithm.
109  v<0.8.3>, <09/01/2020> -- Make decision score consistent.
110  v<0.8.3>, <09/19/2020> -- Add model persistence documentation (save and load).
111  v<0.8.4>, <10/13/2020> -- Fix COPOD code inconsistency (issue #239).
112  v<0.8.4>, <10/24/2020> -- Fix LSCP minor bug (issue #180).
113  v<0.8.4>, <11/02/2020> -- Add support for Tensorflow 2.
114  v<0.8.4>, <11/12/2020> -- Merge PR #!02 for categortical data generation.
115  v<0.8.5>, <12/22/2020> -- Refactor test from sklearn to numpy
116  v<0.8.5>, <12/22/2020> -- Refactor COPOD for consistency
117  v<0.8.5>, <12/22/2020> -- Refactor due to sklearn 0.24 (issue #265)
118  v<0.8.6>, <01/09/2021> -- Improve COF speed (PR #159)
119  v<0.8.6>, <01/10/2021> -- Fix LMDD parameter inconsistenct.
120  v<0.8.6>, <01/12/2021> -- Add option to specify feature names in copod explanation plot (PR #261).
121  v<0.8.7>, <01/16/2021> -- Add ROD.
122  v<0.8.7>, <02/18/2021> -- Dependency optimization.
123  v<0.8.8>, <04/08/2021> -- COPOD optimization.
124  v<0.8.8>, <04/08/2021> -- Add parallelization for COPOD.
125  v<0.8.8>, <04/26/2021> -- Fix XGBOD issue with xgboost 1.4.
126  v<0.8.9>, <05/17/2021> -- Turn on test for Python 3.5-3.8.
127  v<0.8.9>, <06/10/2021> -- Add PyTorch AutoEncoder
128  v<0.8.9>, <06/11/2021> -- Fix LMDD parameter (#307)
129  v<0.9.0>, <06/20/2021> -- Add clone test for models.
130  v<0.9.0>, <07/03/2021> -- ROD hot fix (#316).
131  v<0.9.0>, <07/04/2021> -- Improve COPOD plot with colunms parameter.
132  v<0.9.1>, <07/12/2021> -- Improve COPOD by dropping pandas dependency.
133  v<0.9.1>, <07/19/2021> -- Add memory efficienct COF.
134  v<0.9.1>, <08/01/2021> -- Fix Pytorch Dataset issue.
135  v<0.9.1>, <08/14/2021> -- Synchronize scikit-learn LOF parameters.
136  v<0.9.2>, <08/15/2021> -- Fix ROD.
137  v<0.9.2>, <08/15/2021> -- Add DeepSVDD (implemented by Rafał Bodziony).
138  v<0.9.3>, <08/19/2021> -- Expand test to Python 3.8 and 3.9.
139  v<0.9.3>, <08/29/2021> -- Add SUOD.
140  v<0.9.4>, <08/29/2021> -- Urgent update for scikit-learnin 1.0.
141  v<0.9.5>, <09/10/2021> -- Update to GitHub Action for autotest!
142  v<0.9.5>, <09/10/2021> -- Various documentation fix.
143  v<0.9.5>, <10/26/2021> -- MAD fix #318.
144  v<0.9.5>, <10/26/2021> -- Automatic histogram size selection for HBOS and LODA #321.
145  v<0.9.5>, <10/27/2021> -- Add prediction confidence #349.
146  v<0.9.6>, <11/05/2021> -- Minor bug fix for COPOD.
147  v<0.9.6>, <12/24/2021> -- Bug fix for MAD (#358).
148  v<0.9.6>, <12/24/2021> -- Bug fix for COPOD plotting (#337).
149  v<0.9.6>, <12/24/2021> -- Model persistence doc improvement.
150  v<0.9.7>, <01/03/2022> -- Add ECOD.
151  v<0.9.8>, <02/23/2022> -- Add Feature Importance for iForest.
152  v<0.9.8>, <03/05/2022> -- Update ECOD (TKDE 2022).
153  v<0.9.9>, <03/20/2022> -- Renovate documentation.
154  v<0.9.9>, <03/23/2022> -- Add example for COPOD interpretability.
155  v<0.9.9>, <03/23/2022> -- Add outlier detection by Cook’s distances.
156  v<0.9.9>, <04/04/2022> -- Various community fix.
157  v<1.0.0>, <04/04/2022> -- Add KDE detector (#382).
158  v<1.0.0>, <04/06/2022> -- Disable the bias term in DeepSVDD (#385).
159  v<1.0.0>, <04/21/2022> -- Fix a set of issues of autoencoders (#313, #390, #391).
160  v<1.0.0>, <04/23/2022> -- Add sampling based detector (#384).
161  v<1.0.1>, <04/27/2022> -- Add INNE (#396).
162  v<1.0.1>, <05/13/2022> -- Urgent fix for iForest (#406).
163  v<1.0.2>, <06/21/2022> -- Add GMM detector (#402).
164  v<1.0.2>, <06/23/2022> -- Add ADBench Benchmark.
165  v<1.0.3>, <06/27/2022> -- Change default generation to new behaviors (#409).
166  v<1.0.3>, <07/04/2022> -- Add AnoGAN (#412).
167  v<1.0.4>, <07/29/2022> -- General improvement of code quality and test coverage.
168  v<1.0.4>, <07/29/2022> -- Add LUNAR (#413).
169  v<1.0.4>, <07/29/2022> -- Add LUNAR (#415).
170  v<1.0.5>, <07/29/2022> -- Import optimization.
171  v<1.0.5>, <08/27/2022> -- Code optimization.
172  v<1.0.5>, <09/14/2022> -- Add ALAD.
173  v<1.0.6>, <09/23/2022> -- Update ADBench benchmark for NeruIPS 2022.
174  v<1.0.6>, <10/23/2022> -- ADD KPCA.
175  v<1.0.7>, <12/14/2022> -- Enable automatic thresholding by pythresh (#454).
176  v<1.0.8>, <03/08/2023> -- Improve clone compatibility (#471).
177  v<1.0.8>, <03/08/2023> -- Add QMCD detector (#452).
178  v<1.0.8>, <03/08/2023> -- Optimized ECDF and drop Statsmodels dependency (#467).
179  v<1.0.9>, <03/19/2023> -- Hot fix for errors in ECOD and COPOD due to the issue of scipy.
180  v<1.1.0>, <06/19/2023> -- Further integration of PyThresh.
181  v<1.1.1>, <07/03/2023> -- Bump up sklearn requirement and some hot fixes.
182  v<1.1.1>, <10/24/2023> -- Add deep isolation forest (#506).
183  v<1.1.2>, <11/17/2023> -- Massive documentation optimization.
184  v<1.1.2>, <11/17/2023> -- Fix the issue of contamination.
185  v<1.1.2>, <11/17/2023> -- KPCA bug fix (#494).
186  v<1.1.3>, <02/07/2024> -- Minor fix for SUOD changes.
187  v<1.1.4>, <02/09/2024> -- Drop support of six for Python 2.
188  v<1.1.4>, <03/16/2024> -- Fix documentation and temporarily restrict to Keras 2 in testing.
189  v<2.0.0>, <05/21/2024> -- Moving from TF to Torch -- reimplement SO_GAAL.
190  v<2.0.0>, <05/21/2024> -- Moving from TF to Torch -- implement dl base with more utilities.
191  v<2.0.1>, <06/16/2024> -- Moving from TF to Torch -- reimplement DeepSVDD.
192  v<2.0.1>, <06/17/2024> -- Moving from TF to Torch -- reimplement dl_base.
193  v<2.0.1>, <06/21/2024> -- Moving from TF to Torch -- reimplement MO_GAAL.
194  v<2.0.1>, <06/21/2024> -- Moving from TF to Torch -- reimplement AE and VAE.
195  v<2.0.2>, <07/01/2024> -- Add AE1SVM.
196  v<2.0.2>, <07/04/2024> -- Moving from TF to Torch -- reimplement ALAD.
197  v<2.0.2>, <07/04/2024> -- Moving from TF to Torch -- reimplement anogan.
198  v<2.0.2>, <07/06/2024> -- Complete of removing all Tensorflow and Keras code.
199  v<2.0.2>, <07/21/2024> -- Add DevNet.
200  v<2.0.3>, <09/06/2024> -- Add Reject Option in Unsupervised Anomaly Detection (#605).
201  v<2.0.3>, <12/20/2024> -- Massive documentation polish.
202  v<2.0.4>, <04/29/2025> -- Mistakenly we skipped 2.0.4.
203  v<2.0.5>, <04/29/2025> -- Add wheel for better installation.
204  v<2.0.6>, <09/04/2025> -- Finally, add the auto model selector (#616).
205  v<2.0.6>, <12/01/2025> -- Pre-caution for new sklearn break change(#649).
206  v<2.0.7>, <01/04/2026> -- Fix compatability issue of new sklearn.
207  v<2.0.7>, <02/27/2026> -- Improve NearestNeighbors consistency/performance in KNN, ABOD, SOD, and LUNAR (issue #654).
208  v<2.0.7>, <02/27/2026> -- VAE default output activation changed to identity and added identity activation support/tests (issue #651).
209  v<2.0.7>, <02/27/2026> -- Fix package_data/MANIFEST configuration to include auto model selector JSON resources in distributions (issue #642).
210  v<2.0.7>, <02/27/2026> -- In BaseDeepLearningDetector, explicitly ignore y during unsupervised fit to avoid batch tuple/list device errors in DL detectors (issue #591).
211  v<2.0.8>, <02/28/2026> -- Add HDBSCAN detector with tests and documentation updates.
212  v<2.0.8>, <04/03/2026> -- Fix CD detector to reuse training-fitted models at prediction time instead of re-fitting on test data; fix broken NaN check in Cook's distance; use sklearn.base.clone instead of deepcopy; fix mutable default argument (PR #624).
213  v<2.0.8>, <04/03/2026> -- Fix AutoModelSelector: guard openai/dotenv imports, fix model name mismatches (MO-GAAL/SO-GAAL/Deep SVDD), replace if/elif with registry, add tests (issue #625).
214  v<2.1.0>, <04/06/2026> -- Multi-modal anomaly detection via foundation model embeddings. Add EmbeddingOD (encoder + detector pipeline for text/image), MultiModalEncoder (early fusion with mean imputation for missing data), and MultiModalOD (score fusion with per-modality standardization). Includes benchmark-informed presets (for_text, for_image), encoder registry (sentence-transformers, OpenAI, HuggingFace, callable), optional dependency extras, and documentation cleanup.
215  v<2.1.1>, <04/09/2026> -- Add ADEngine: intelligent anomaly detection lifecycle engine. Knowledge base with 47 algorithm entries, benchmark results (ADBench, NLP-ADBench, TSB-AD), and routing rules. Full lifecycle methods: profile_data, plan_detection, build_detector, run_detection, analyze_results, explain_findings, suggest_next_step, generate_report. MCP server for LLM agent integration (Tier A: knowledge + planning tools). Claude Code od-expert skill. AutoModelSelector deprecated in favor of ADEngine.
216  v<2.1.1>, <04/09/2026> -- Add 7 time-series anomaly detectors: TimeSeriesOD (windowed bridge with any PyOD detector), MatrixProfile (STOMP, transductive), SpectralResidual (FFT saliency), KShape (experimental, shape-based clustering), SAND (experimental, streaming with drift adaptation), LSTMAD (LSTM prediction + Mahalanobis), AnomalyTransformer (attention discrepancy + minimax). Shared TS utilities, generate_ts_data() for synthetic benchmarks, per-algorithm examples and tests, ADEngine TS routing integration, BibTeX citations for all papers.
217  v<2.2.0>, <04/11/2026> -- Add 8 graph anomaly detectors: DOMINANT, CoLA, CONAD, AnomalyDAE, GUIDE, Radar, ANOMALOUS, SCAN. All transductive v1, PyG Data input. Shared graph utilities, generate_graph_data() for synthetic benchmarks, per-algorithm examples and tests, ADEngine graph profiling and routing, BOND benchmark integration. Install via pip install pyod[graph].
218  v<2.2.0>, <04/12/2026> -- V3 Agentic Session API: add InvestigationState workflow engine to ADEngine. Session methods (start, plan, run, analyze, iterate, report, investigate) enable multi-detector comparison with rank-normalized consensus, result quality assessment (separation, agreement, stability), and actionable iteration with structured and natural-language feedback. One-shot investigate() runs the full expert workflow.
219  v<2.2.0>, <04/12/2026> -- Convert example and test data from .mat to .csv format for better accessibility (arrhythmia, cardio, ionosphere, letter, pima). All 10 examples, tests, and utilities now use numpy.genfromtxt. .mat files preserved for backward compatibility. Add V3 session guardrails: phase enforcement via _require_phase() on run/analyze/iterate/report, format validation in report(), truthful include-at-cap behavior, plan() clears downstream state on re-plan.
220  v<3.0.0>, <04/12/2026> -- PyOD 3.0 release. Major version bump reflecting the three-layer architecture (classic fit/predict API, ADEngine intelligent orchestration, and agentic investigation workflow) plus multi-modal coverage (tabular, time series, graph, text, image) across 60+ detectors. Documentation restructured around the three layers: README and docs/index.rst lead with the three-layer positioning, new docs/examples/ section with agentic walkthrough as the crown jewel, interactive HTML demo at examples/agentic_demo.html (previewable via htmlpreview.github.io), and od-expert skill for auto-activation in Claude Code. No breaking API changes; all existing methods preserved.
221  v<3.1.0>, <04/13/2026> -- Skill install UX improvements. Adds a unified `pyod` CLI with `install`, `info`, and `mcp` subcommands; the legacy `pyod-install-skill` console script is kept as a backward-compat alias and now shares one code path with the new command. `pyod info` prints version, real detector counts from the knowledge base, MCP extra availability, and the od-expert skill install state, with agent stack detection for both Claude Code (`~/.claude/`) and Codex (`~/.codex/`) so Codex users see actionable `pyod install skill --project` guidance. `pyod/mcp_server.py` is now safe to import in a core install without the `mcp` extra (previously it called `sys.exit(1)` at import time). Documentation refactored: the full installation guide is now in `docs/install.rst` (core install, conda, source, agentic activation paths for Claude Code, Codex, and MCP, plus verification via `pyod info`); README has a lean quickstart block linking to the guide. No breaking changes.
222  v<3.2.0>, <04/13/2026> -- od-expert skill deepening. Replaces the 78-line v3.0.0 SKILL.md with ~1000 lines of expert content split across SKILL.md (always-loaded: activation rules, master decision tree, top-10 critical pitfalls, 11 adaptive escalation triggers) and 6 on-demand reference files (workflow, pitfalls, tabular, time series, graph, text/image). Adds skill maintenance methodology guide at `docs/skill_maintenance.rst` documenting the hybrid hand-written + KB-derived pattern, manual and automatic update workflows, and the recipe for adding new skills. Adds `scripts/regen_skill.py` to refresh KB-derived sections from `pyod.utils.knowledge` at build time, with a backtick-convention CI safety net (`pyod/test/test_skill_kb_consistency.py`) that asserts every detector name in the skill matches the live KB. Tree-aware installer copies the `references/` subdirectory alongside SKILL.md. Adds correct `requires` metadata for `SUOD` (suod extra) and `FeatureBagging` (combo extra) so `engine.explain_detector()` surfaces the install hint at runtime. Includes one-shot research deliverable at `docs/superpowers/research/2026-04-13-od-ad-state-of-art.md` with cited sources and a `docs/v3.3-backlog.md` of literature gap items. No breaking changes.
223  v<3.2.1>, <04/14/2026> -- od-expert skill correctness and demo polish. Fixes 17+ incorrect API references shipped in the v3.2.0 skill content: `state.plan[...]` -> `state.plans`, `state.scores` -> `state.consensus['scores']`, `state.best_detector` -> `state.analysis['best_detector']`, invented keys `state.profile['estimated_contamination']` and `state.profile['encoder']` removed, phantom supervised session API `engine.start(X, y=labels)` replaced with the real classic `XGBOD.fit(X, y)` drop-out path (ADEngine sessions are unsupervised in v3.2.x). Adds `pyod/test/test_skill_api_refs.py`, a new safety-net test that walks `ADEngine` + `InvestigationState` via a live dry run (tabular, time series, text) and validates every backtick-wrapped `state.X` / `state.X['a']['b']` / `engine.X(...)` reference in the skill content; uses `inspect.signature` to catch invalid keyword arguments such as the original `engine.start(X, y=...)`, and ships a synthetic negative test that fabricates the regression shapes and asserts the scanner catches them. Rewrites `examples/agentic_demo.html` around the diabetes screening dataset (pima.csv) with side-callout "od-expert decisions" panels (two-column CSS grid, sticky callouts, overflow guards for narrow viewports); renames the dataset in user-visible text to drop the historical "Pima Indians" label. Adds `scripts/render_agentic_demo.py` (Playwright headless Chromium) so `docs/figs/agentic-demo.png` can be regenerated from the HTML source. Re-probes hardcoded planner outputs in tabular/time_series/graph/text_image reference files against a live `engine.plan` and relabels the decision tables as expert heuristics (not predictions of `state.plans`). Rewrites the cardio walkthrough in `references/workflow.md` to match the one-pass start -> plan -> run -> analyze code it shows (seed 42, default contamination 0.1, 172/1831 flagged, `X = df.values[:, :-1]` excludes the label column) and fixes the Round 1 API-bug Pitfall 2 phrasing to stop claiming the profiler estimates contamination. No breaking API changes.