PyOD 3.2.0 — od-expert skill deepening
Minor release that transforms the bundled od-expert skill from a 78-line API documentation file into a real expert distillation (~1000 lines) that drives PyOD's ADEngine autonomously for non-expert users.
What's new
- Deepened
od-expertskill (~1000 lines across SKILL.md + 6 reference files).SKILL.md: activation rules, master decision tree, top-10 critical pitfalls, 11 adaptive escalation triggersreferences/workflow.md: autonomous loop pattern, escalation phrasings, cardio canonical worked example, result interpretation patternsreferences/pitfalls.md: 23 additional pitfalls organized by phase (preprocessing / detection / analysis / reporting / iteration), severity-taggedreferences/{tabular,time_series,graph,text_image}.md: per-modality decision tables, KB-derived detector lists, worked snippets, modality-specific pitfalls
- Skill maintenance methodology guide at
docs/skill_maintenance.rstdocumenting the hybrid hand-written + KB-derived pattern, manual + automatic update workflows, and the recipe for adding new skills. - Build-time generator
scripts/regen_skill.pyrefreshes KB-derived sections in skill files frompyod.utils.knowledge. - CI safety net
pyod/test/test_skill_kb_consistency.pyasserts every backtick-wrapped detector name in the skill matches the live KB; drift fails the build loudly. - Tree-aware skill installer:
pyod install skillnow copies the entire skill directory tree (includingreferences/), not justSKILL.md. - KB metadata fix for
SUODandFeatureBaggingsoengine.explain_detector()now correctly surfaces theirsuodandcomboextras as install hints.
Behind the scenes
- Skill content distilled from a one-shot research pass over 2024-2025 OD/AD literature, industry case studies, and benchmarks. Cited sources in
docs/superpowers/research/2026-04-13-od-ad-state-of-art.md. - Literature recommendations not yet supported by PyOD are tracked in
docs/v3.3-backlog.mdfor future releases.
Install
pip install --upgrade pyod
pyod install skill
pyod infoNo breaking changes. v3.0.0 / v3.1.0 user code keeps working unchanged.