From mltoolkit
Build a classification pipeline with native sklearn code. Runs inline, shows leaderboard + figures, then packages into a deliverable.
How this skill is triggered — by the user, by Claude, or both
Slash command
/mltoolkit:classifyThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
- Session scratchpad: `.mltoolkit/session.py` (in user's CWD)
.mltoolkit/session.py (in user's CWD){SKILL_DIR}/references/classify_reference.py{PLUGIN_ROOT}/references/_shared/{SKILL_DIR}/references/classify_reference.py so you know its stages..mltoolkit/ if missing in the user's CWD and add to .gitignore..mltoolkit/:
python {PLUGIN_ROOT}/scripts/stage_session.py --task classify --dest .mltoolkit
This copies classify_reference.py as session.py, plus the sibling modules (preprocessing.py, model_zoo.py) and the _shared/ package, all co-located so the script runs standalone.python .mltoolkit/session.py --data <DATA> --target <TARGET> --output-dir .mltoolkit --stage eda.mltoolkit/results/schema.csv and the generated figures in .mltoolkit/artifacts/.python .mltoolkit/session.py --data <DATA> --target <TARGET> --output-dir .mltoolkit --stage compare.mltoolkit/results/leaderboard.csv as a markdown table.python .mltoolkit/session.py --data <DATA> --target <TARGET> --output-dir .mltoolkit --stage tune --model <ID>python .mltoolkit/session.py --data <DATA> --target <TARGET> --output-dir .mltoolkit --stage evaluatemltoolkit:package).--target.--cv 3 to reduce fold count; warn the user.imblearn is installed, mention SMOTE as an option for the user..mltoolkit/artifacts/ and .mltoolkit/results/. Do not write elsewhere without asking.When user asks to:
.mltoolkit/session.py, extend get_zoo() import with the new model, re-run compare.--exclude filter to the session copy and re-run.--n-iter (may require editing the script).session.py to wrap estimator in imblearn.pipeline.Pipeline with SMOTE.These flags turn the plugin into a TRIPOD+AI-grade reporting toolkit. Defaults preserve original behavior.
| Flag | Effect | Output |
|---|---|---|
--group-col <col> | Route CV through GroupKFold / StratifiedGroupKFold. | per-fold scores + subgroup_metrics.csv |
--time-col <col> | TimeSeriesSplit. | per-fold |
--sensitive-features a,b,c | Plugin refuses to target-encode these. Use with --group-col for subgroup metrics when the group is a protected attribute. | |
--allow-target-encode-on-sensitive | Override the refusal (record rationale in datasheet.md). | |
--imputation {simple,iterative,knn,drop} | Imputer class. | missingness.png |
--resample {smote,adasyn} | imblearn over-sampling before fit. | |
--calibrate {sigmoid,isotonic} | Wrap final model in CalibratedClassifierCV. | calibration.json, reliability.png |
--optimize-threshold {youden,f1,mcc,fixed-recall} --fixed-recall 0.80 | Pick operating point. | threshold.json |
--decision-curve | Vickers 2006 net-benefit plot. | decision_curve.png |
--bootstrap N | N-sample percentile CI on holdout metrics. | holdout_metrics_ci.json |
Fill out .mltoolkit/datasheet.md (from setup) with protected-attribute column names and pass them via --sensitive-features.
Prompt the user to package once:
Then invoke mltoolkit:package and pass through the task type (classification).
npx claudepluginhub olatechie/mltoolkit-pluginCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.