Agent skill

Machine Learning

by ericrisco in ericrisco/rsc-harness

A skill your agent uses when predicting a column from rows of tabular features with classic models — scikit-learn pipelines, RandomForest, XGBoost/LightGBM, leak-free cross-validation, metrics for…

MITAuto-check passedData & Analytics

Install Machine Learning

skills CLI
$ npx skills add ericrisco/rsc-harness --skill machine-learning -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install ericrisco/rsc-harness machine-learning --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/machine-learning .claude/skills/machine-learning && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
machine-learning
GitHub stars
156
Token cost
~4.2k tokens
SKILL.md length
1,674 words
Files
6 (incl. references)
Skills in repo
229
Repo updated
First seen
Licence
MIT

At a glance

A skill your agent uses when predicting a column from rows of tabular features with classic models — scikit-learn pipelines, RandomForest, XGBoost/LightGBM, leak-free cross-validation, metrics for…

  • Predicting a column from rows of tabular features with classic models — scikit-learn pipelines
  • SKILL.md covers Is this the right skill?…, Version reality (verify at…, The one rule everything else… and scikit-learn: estimators,…, plus 7 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md
  • XGBoost/LightGBM

What it does

Machine Learning is an agent skill from ericrisco/rsc-harness. Use when predicting a column from rows of tabular features with classic models — scikit-learn pipelines, RandomForest, XGBoost/LightGBM, leak-free cross-validation, metrics for imbalanced classes, or a model that aced CV then collapsed in production. NOT PyTorch neural nets (that is deep-learning), NOT cleaning the dirty table first (that is data-cleaning), NOT forecasting a dated series (that is forecasting), NOT text/token modeling (that is nlp).

Its SKILL.md is about 4.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 7 other files, including reference files (for example `evals/README.md`, `evals/cases.yaml` and `references/gbdt-and-tuning.md`).

It sits in Data & Analytics, covering Machine learning and Deep learning. It works with scikit-learn and PyTorch. The repository describes itself as: Your agent invents things because it has no memory, and can't touch your database because it has no arms. rsc is the meta-harness that gives it both, plus the trade to know the… The licence is MIT.

When your agent uses it

  • Predicting a column from rows of tabular features with classic models — scikit-learn pipelines
  • XGBoost/LightGBM
  • Leak-free cross-validation
  • Metrics for imbalanced classes

Example prompts

  • “/machine-learning”

Requirements

  • Python 3

What it can do on your machine

Read from SKILL.md and the folder at commit 92fde8f. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are python).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • scikit-learn.org
    • arxiv.org

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Machine Learning loads about 4.2k tokens when it runs, and up to ~8k if it reads all its reference files. Until then it costs about 119 tokens; SKILL.md has 1,674 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~119
When it runs · the whole SKILL.md, loaded when a task matches
~4.2k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~8k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from ericrisco/rsc-harness at commit 92fde8f, republished under its MIT licence (© ericrisco). 1,674 words, ~4,226 tokens.

Download SKILL.mdSave it as .claude/skills/machine-learning/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.
name
machine-learning
description
Use when predicting a column from rows of tabular features with classic models — scikit-learn pipelines, RandomForest, XGBoost/LightGBM, leak-free cross-validation, metrics for imbalanced classes, or a model that aced CV then collapsed in production. NOT PyTorch neural nets (that is `deep-learning`), NOT cleaning the dirty table first (that is `data-cleaning`), NOT forecasting a dated series (that is `forecasting`), NOT text/token modeling (that is `nlp`).
tags
machine-learning, scikit-learn, sklearn, xgboost, lightgbm, tabular, gbdt, cross-validation, data-leakage, classification, regression, pipeline
recommends
deep-learning, data-cleaning, python, training-data
origin
risco

Machine learning — classic/tabular models, done without lying to yourself

Tabular ML is easy to run and easy to fool yourself with. The deliverable is never "the notebook printed 0.99" — it is an honest estimate of how the model behaves on data it has never seen: a Pipeline that fits every transform on train only, a metric that survives class imbalance, and a DummyClassifier baseline it beats. A number you can't reproduce on a sacred test set you touched exactly once isn't a result — it's a leak you haven't found yet.

Is this the right skill? (decide first)

Your situationReach for
Rows of features, predict a column, with trees / linear models / sklearnmachine-learning (this skill)
Images, audio, long text, sequences, or you need a neural net / PyTorchdeep-learning
The table is still dirty (nulls, dupes, mixed types, bad dates)data-cleaning first — it hands you a validated table
Text/token classification, NER, tokenization, LLM-adjacent NLP metricsnlp (a TF-IDF + linear/GBDT baseline still lives happily in this skill's pipeline)
KPIs, dashboards, "explain the business"analytics / business-intelligence
Forecast a dated series forward (revenue next quarter)forecasting
Building a training corpus of JSONL messages / preference pairs for an LLMtraining-data

This skill starts at a clean, validated table (rows × features + a target) and ends at a fitted, honestly-scored model with a test-set number and a baseline it beats. Cleaning is upstream — consume the validated frame data-cleaning produced; don't re-teach it here.

Version reality (verify at author time — this line moves monthly)

Verified 2026-07: scikit-learn current major ~1.9 (1.9.0 shipped 2026-06-02, Python 3.11–3.14) — do NOT pin from memory; check the current stable at scikit-learn.org, the 1.x line ships every few months. GBDTs: XGBoost 3.x and LightGBM 4.x (xgboost 3.3, lightgbm 4.6 current), plus sklearn's own HistGradientBoostingClassifier/...Regressor — a fast native GBDT that eats NaN and (with categorical_features="from_dtype") categoricals with no preprocessing. Pin what you ship (python owns the environment and the pinning); state versions as "~X (verify)", never as frozen fact.

The one rule everything else serves: fit on train only

Every preprocessing step — imputation, scaling, encoding, feature selection, target encoding, resampling — learns parameters from data. Learn them from rows the model is later scored on and the score inflates while production underperforms: that is leakage, the #1 way tabular ML lies. The whole apparatus below — Pipeline, ColumnTransformer, CV, the untouched test set — exists to make "fit on train only" automatic instead of something you remember to do by hand (you won't).

scikit-learn: estimators, Pipeline, ColumnTransformer

Every model is an estimator with the same contract: fit(X, y), then predict(X) / predict_proba(X) (classifiers) / score(X, y). Transformers add transform(X) / fit_transform(X, y). A Pipeline chains transformers + a final estimator into one estimator — so fit fits every step on train, and predict/CV transforms test data with parameters learned on train. That is the leakage guard.

A ColumnTransformer routes different columns down different transformer branches (scale the numerics, encode the categoricals) and stitches the result back together — all still inside the pipeline.

python
from sklearn.compose import ColumnTransformer, make_column_selector as mcs
from sklearn.pipeline import Pipeline
from sklearn.impute import SimpleImputer
from sklearn.preprocessing import StandardScaler, OneHotEncoder
from sklearn.linear_model import LogisticRegression

numeric = Pipeline([("impute", SimpleImputer(strategy="median")),
                    ("scale",  StandardScaler())])           # scaling matters for LINEAR/SVM/KNN
categoric = Pipeline([("impute", SimpleImputer(strategy="most_frequent")),
                      ("onehot", OneHotEncoder(handle_unknown="ignore"))])  # unseen category -> all-zeros, no crash

pre = ColumnTransformer([
    ("num", numeric,   mcs(dtype_include="number")),
    ("cat", categoric, mcs(dtype_include=["object", "category"])),
], remainder="drop")

model = Pipeline([("pre", pre), ("clf", LogisticRegression(max_iter=1000, class_weight="balanced"))])
model.fit(X_train, y_train)          # imputers/scaler/encoder ALL fit on X_train only
model.predict_proba(X_test)          # X_test transformed with train-learned params — no leak

Two load-bearing details: OneHotEncoder(handle_unknown="ignore") so a category unseen in train doesn't crash prediction, and remainder="drop" so unrouted columns don't silently leak through raw; model.set_output(transform="pandas") keeps named-column DataFrames through the pipeline.

Trees skip most of this — scaling is pointless for tree models, and HistGradientBoostingClassifier ingests NaN and categoricals natively, so its pipeline is often just the estimator. Preprocess for the model that needs it, not as a ritual. More patterns (make_column_transformer, FunctionTransformer) → references/pipelines-and-cv.md.

GBDTs are your default on tabular data

Gradient-boosted decision trees are the correct first (and usually last) model for tabular problems. This isn't taste: Grinsztajn, Oyallon & Varoquaux (2022), "Why do tree-based models still outperform deep learning on tabular data?" (arXiv:2207.08815) benchmarked across 45 datasets and found GBDTs beat tuned neural nets on medium-sized tabular data, tracing it to three inductive biases NNs lack: robustness to uninformative features, not being rotationally invariant (so they exploit the meaning of individual columns), and ease of learning irregular / non-smooth target functions. Start with a GBDT; reach for deep-learning on tabular only with a specific reason.

LibraryImportReach for it when
HistGradientBoostingClassifiersklearn.ensembleDefault. Fast, zero extra deps, native NaN + categorical.
XGBoost 3.xxgboost.XGBClassifierBattle-tested; early_stopping_rounds, rich regularization.
LightGBM 4.xlightgbm.LGBMClassifierFastest on wide/large data; leaf-wise; strong native categoricals.

All three expose the sklearn estimator API, so they drop into the pipeline and CV below unchanged. Don't agonize over XGBoost-vs-LightGBM before you have a baseline and a leak-free CV — split discipline dwarfs the library choice. Tuning knobs (learning_rate, num_leaves/max_depth, early stopping, monotonic_cst) and importance/SHAP → references/gbdt-and-tuning.md.

Leakage-safe feature engineering

Feature engineering is where leakage sneaks back in after the pipeline "protected" you. Rules:

  • Any transform that learns from data goes INSIDE the pipeline, so CV re-fits it per fold. A scaler fit on the whole dataset, a SelectKBest run before splitting, an imputer using the global mean — each leaks test statistics into train. The common_pitfalls canonical example: SelectKBest(k=25).fit_transform(X, y) before train_test_split produces a beautiful, meaningless score.
  • Target/mean encoding of high-cardinality categoricals must cross-fit. sklearn's preprocessing.TargetEncoder does this: its fit_transform(X, y) uses an internal cross-fitting scheme so each row is encoded from other folds' targets — fit(X, y).transform(X) deliberately differs and would leak. Use fit_transform on train (inside the pipeline); never hand-roll a group-mean encoder.
  • No target-derived features. A column computed from the label (or a near-proxy: "was_refunded" when predicting "will_refund") is leakage wearing a feature's clothes. If a feature is impossibly predictive, suspect it.
  • Respect time. With any temporal structure, a feature may use only information available at prediction time — no future aggregates, no lifetime values that include post-cutoff rows. Split by time (TimeSeriesSplit), not randomly.
Show full SKILL.md (753 more words)Show less

Split + cross-validation: protect the sacred test set

Hold out a test set once, at the very start (train_test_split(..., stratify=y, random_state=0)) and do not look at it until you have a single final model. Every glance — tuning, feature choice, "let me just check" — bleeds information and re-inflates the estimate. Tune and compare with cross-validation on the training portion only; the test set is the one honest number at the end (see the lifecycle below). Score with cross_validate(pipeline, X_tr, y_tr, cv=cv, scoring=[...], return_train_score=True) — a large train-minus-test gap is your overfitting alarm.

Pick the splitter to match the data (cross_validation docs):

  • StratifiedKFold — default for classification; preserves class balance per fold (essential when imbalanced). KFold for regression.
  • TimeSeriesSplit — any time ordering. Trains on past, tests on future; never shuffles the future into train. A random KFold on time-series data is leakage.
  • GroupKFold / StratifiedGroupKFold — when rows cluster (same user/patient/store across many rows). Keep a group entirely in train or test, or the model memorizes the group and CV lies.
  • Pass integer random_state to splitters for reproducible folds. Put preprocessing in the pipeline so CV re-fits it every fold — cross_validate(pipeline, ...), never cross_validate(model, X_scaled, ...).

For tuning, wrap CV in GridSearchCV / RandomizedSearchCV / HalvingRandomSearchCV; for an unbiased estimate of the tuning process itself, use nested CV → references/pipelines-and-cv.md.

Metrics: the accuracy trap and what to use instead

Accuracy lies on imbalanced data. At 99% negatives, a model that predicts "negative" always scores 99% accuracy and is worthless. Choose the metric for the task and the cost of each error type (model_evaluation docs):

Task / questionMetric (sklearn.metrics)scoring string
Ranking quality, threshold-free, balanced-ishroc_auc_score"roc_auc"
Imbalanced ranking (rare positive: fraud, disease)average_precision_score (PR-AUC)"average_precision"
Cost of false positives high (don't cry wolf)precision_score"precision"
Cost of misses high (don't miss a case)recall_score"recall"
Balance both, per-class fairnessf1_score (use f1_macro multiclass)"f1" / "f1_macro"
Multiclass, care about every class equallybalanced_accuracy_score"balanced_accuracy"
See the actual error breakdownconfusion_matrix, classification_report—
Regressionr2_score, mean_absolute_error, root_mean_squared_error"r2", "neg_mean_absolute_error", "neg_root_mean_squared_error"

Prefer PR-AUC (average_precision) to ROC-AUC when positives are rare — ROC-AUC can look great while precision is dismal, since it ignores the negative flood. Feed AUC metrics predict_proba, not hard labels. The default 0.5 threshold is a choice: tune it on validation to hit your precision/recall target. Regression uses root_mean_squared_error now (mean_squared_error(squared=False) is gone). Threshold tuning, calibration, class_weight/resampling → references/metrics-and-imbalance.md.

Anti-patterns — the cardinal sins

Anti-patternDo instead
Modeling straight off the raw, dirty tableThis skill starts at a clean, validated frame. Run data-cleaning first — nulls, dupes and mixed dtypes are its job, not a modeling problem.
Scaling / encoding / selecting features, then splittingLeakage (#1 sin). Test statistics are now in train. Split first; put every learned transform inside the Pipeline so CV re-fits per fold.
Celebrating an amazingly predictive featureSuspect target leakage — a column derived from the label or unavailable at prediction time. Audit provenance before you celebrate.
Reporting 99% accuracy on 1% positivesThe accuracy trap. A constant predictor matches it. Report PR-AUC / precision / recall / F1 and a confusion_matrix.
SMOTE-ing the whole dataset because the classes are imbalancedResampling before the split, or on the test fold, leaks and evaluates on synthetic rows. Resample inside CV, on the train fold only (imblearn Pipeline), or just use class_weight="balanced".
Shipping on the CV score aloneYou never touched a held-out test set, or you peeked at it while tuning. One final, untouched test number — or the estimate is optimistic.
Random KFold on time-series / multi-user dataFuture or same-group rows leak into train. Use TimeSeriesSplit / GroupKFold.
Waving off a big train/test gapOverfitting. Regularize, reduce capacity (max_depth, min_samples_leaf), get more data, or use early stopping. Watch return_train_score.
Going straight to XGBoost with no baselineWithout a DummyClassifier(strategy="most_frequent") / DummyRegressor floor (and a simple linear model), you can't tell if the fancy model adds anything.
Grid-searching 10k combos over all the dataTuning against the test set is fitting to it. Tune with CV on train, confirm once on test; consider nested CV.
Unset random_state, unpinned versionsFolds and fits stop being reproducible and re-trains stop being comparable. Set an integer random_state on splitters and estimators; pin the versions you ship.

Worked lifecycle (end to end)

python
from sklearn.dummy import DummyClassifier
from sklearn.ensemble import HistGradientBoostingClassifier
from sklearn.model_selection import train_test_split, StratifiedKFold, cross_val_score
from sklearn.metrics import average_precision_score, classification_report

X_tr, X_test, y_tr, y_test = train_test_split(X, y, test_size=0.2, stratify=y, random_state=0)
cv = StratifiedKFold(n_splits=5, shuffle=True, random_state=0)

# 0. BASELINE first — the floor every real model must clear
base = DummyClassifier(strategy="most_frequent")
print("baseline PR-AUC:", cross_val_score(base, X_tr, y_tr, cv=cv, scoring="average_precision").mean())

# 1. default GBDT (native NaN + categoricals -> minimal pipeline). class_weight for imbalance.
clf = HistGradientBoostingClassifier(categorical_features="from_dtype",
                                     class_weight="balanced", random_state=0)
cv_pr = cross_val_score(clf, X_tr, y_tr, cv=cv, scoring="average_precision")
print("model CV PR-AUC:", cv_pr.mean().round(3), "+/-", cv_pr.std().round(3))

# 2. it clears the baseline -> commit, fit on all train, judge ONCE on the sacred test set
clf.fit(X_tr, y_tr)
proba = clf.predict_proba(X_test)[:, 1]
print("TEST PR-AUC:", round(average_precision_score(y_test, proba), 3))
print(classification_report(y_test, (proba >= 0.5).astype(int)))   # threshold is a choice — tune it

Project grounding (02-DOCS + CLAUDE.md)

In a project with a 02-DOCS/ layer (the harness wiki), record the modeling contract in 02-DOCS/wiki/ml/<target>.md, linked from the root CLAUDE.md ## Knowledge map: target definition, split strategy + random_state, CV scheme, chosen metric and why, baseline, pinned versions, and the dated final test-set score. Read it first on every re-train so results stay comparable. No 02-DOCS/? Skip silently — conventions are recorded, never gated.

© ericrisco, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 5 other files (references) in skills/machine-learning of ericrisco/rsc-harness.

  • SKILL.md
  • evals/README.md
  • evals/cases.yaml
  • references/gbdt-and-tuning.md
  • references/metrics-and-imbalance.md
  • references/pipelines-and-cv.md

Open the folder on GitHubat commit 92fde8f

Compare with similar skills

Machine Learning next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Machine Learning compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Machine Learning this skillericrisco/rsc-harness156—~4.2kAutomated safety check: PassMIT
ML EngineerRightNow-AI/openfang18k—~987Automated safety check: PassApache-2.0
ML Model Trainingsecondsky/claude-skills2271 repos~1.7kAutomated safety check: PassMIT
Scikit Learn Machine Learningjaechang-hits/SciAgent-Skills3701 repos~4kAutomated safety check: PassBSD-3-Clause
Databricks ML Trainingdatabricks/databricks-agent-skills345—~4.6kAutomated safety check: PassCustom licence
Editomegaml/omegaml107—~206Automated safety check: PassApache-2.0

Similar skills

  • ML Engineer

    RightNow-AI/openfang

    Machine learning engineer expert for PyTorch, scikit-learn, model evaluation, and MLOps

    18k GitHub stars~987 tokensUpdated 3 mo ago
    Data & AnalyticsAuto-check passed
  • ML Model Training

    secondsky/claude-skills

    Train ML models with scikit-learn, PyTorch, TensorFlow. An agent skill from secondsky/claude-skills.

    227 GitHub starsUsed in 1 repo~1.7k tokens
    Data & AnalyticsAuto-check passed
  • Scikit Learn Machine Learning

    jaechang-hits/SciAgent-Skills

    Classical ML in Python: classification, regression, clustering, dim reduction, evaluation, tuning, preprocessing pipelines.

    370 GitHub starsUsed in 1 repo~4k tokens
    Data & AnalyticsAuto-check passed
  • Databricks ML Training

    databricks/databricks-agent-skills

    Official

    Train ML models on Databricks. An agent skill from databricks/databricks-agent-skills.

    345 GitHub stars~4.6k tokensUpdated yesterday
    AI & LLM EngineeringAuto-check passed
  • Edit

    omegaml/omegaml

    how to use the edit command properly

    107 GitHub stars~206 tokensUpdated today
    DevOps & CloudAuto-check passed
  • Molfeat

    davila7/claude-code-templates

    Molecular featurization for ML (100+ featurizers). An agent skill from davila7/claude-code-templates.

    32k GitHub starsUsed in 10 repos~3.7k tokens
    Data & AnalyticsAuto-check passed

More from ericrisco/rsc-harness

All 229 skills in this repo
  • Ab Testing

    ericrisco/rsc-harness

    A skill your agent uses when designing or analyzing a controlled experiment — falsifiable hypothesis, sample size from an MDE, reading significance/CI/power, CUPED, or rescuing tests that won't go…

    156 GitHub stars~2.4k tokensUpdated today
    Auto-check passed
  • Accessibility

    ericrisco/rsc-harness

    A skill your agent uses when making a web UI conform to WCAG 2.2 Level AA — axe-core or Lighthouse a11y violations, keyboard operability, focus management, ARIA roles/names/live regions, contrast…

    156 GitHub stars~3.4k tokensUpdated today
    Auto-check passed
  • Ads

    ericrisco/rsc-harness

    A skill your agent uses when running or fixing paid acquisition on Google or Meta — campaign structure (Performance Max, Demand Gen, Search, Advantage+), platform-fit creative, budget/scaling rules…

    156 GitHub stars~2.2k tokensUpdated today
    Auto-check passed
  • Agent Eval

    ericrisco/rsc-harness

    A skill your agent uses when measuring whether an LLM or agent system actually got better and gating merges on it: golden sets, fixing an inflated LLM-as-judge, scoring RAG (faithfulness, contextual…

    156 GitHub stars~3.2k tokensUpdated today
    Auto-check passed
  • AI Media

    ericrisco/rsc-harness

    A skill your agent uses when a creative goal must become a finished media file: pick and order generative-media models per modality — AI voiceover, image-to-video clips, score — then glue them with…

    156 GitHub stars~3.3k tokensUpdated today
    Auto-check passed
  • Analytics

    ericrisco/rsc-harness

    A skill your agent uses when instrumenting product or web analytics — GA4/PostHog SDK wiring, event taxonomy, funnels, double-counted events, consent gating, PII scrubbing.

    156 GitHub stars~2.8k tokensUpdated today
    Auto-check passed

Questions about Machine Learning

What does Machine Learning do?

A skill your agent uses when predicting a column from rows of tabular features with classic models — scikit-learn pipelines, RandomForest, XGBoost/LightGBM, leak-free cross-validation, metrics for…. Machine Learning is an agent skill from ericrisco/rsc-harness. Use when predicting a column from rows of tabular features with classic models — scikit-learn pipelines, RandomForest, XGBoost/LightGBM, leak-free cross-validation, metrics for imbalanced classes, or a model that aced CV then collapsed in production.

When should I use Machine Learning?

Machine Learning fits situations like: predicting a column from rows of tabular features with classic models — scikit-learn pipelines; XGBoost/LightGBM; leak-free cross-validation; metrics for imbalanced classes.

How do I install Machine Learning in Claude Code?

Run `npx skills add ericrisco/rsc-harness --skill machine-learning -a claude-code`. Or copy the skill folder (skills/machine-learning in ericrisco/rsc-harness) into .claude/skills/machine-learning in your project. Claude Code loads it when a task matches its description.

How do I install Machine Learning in Codex?

Run `npx skills add ericrisco/rsc-harness --skill machine-learning -a codex`. Or copy the skill folder (skills/machine-learning in ericrisco/rsc-harness) into .agents/skills/machine-learning in your project. Codex loads it when a task matches its description.

Can I use Machine Learning in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add ericrisco/rsc-harness --skill machine-learning -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/machine-learning, .gemini/skills/machine-learning, .github/skills/machine-learning and .opencode/skills/machine-learning in your project.

What does Machine Learning need to run?

SKILL.md names no scripts, command-line tools or credentials: Machine Learning is instructions for the agent only. Our summary lists: Python 3.

Does Machine Learning access the network?

SKILL.md names 2 domains. As links in the text: scikit-learn.org and arxiv.org. This is read from the text; nothing was executed.

Is Machine Learning safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Machine Learning use?

Machine Learning is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Machine Learning use?

About 4.2k tokens (SKILL.md is roughly 17k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 3.7k tokens, read only when the agent opens those files.

What are the alternatives to Machine Learning?

Skills that share tags, products or a category with Machine Learning: ML Engineer (RightNow-AI/openfang, 18k stars), ML Model Training (secondsky/claude-skills, 227 stars), Scikit Learn Machine Learning (jaechang-hits/SciAgent-Skills, 370 stars) and Databricks ML Training (databricks/databricks-agent-skills, 345 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Machine Learning?

ericrisco (a GitHub user) maintains it in ericrisco/rsc-harness, which has 156 GitHub stars. The repository holds 229 skills in this directory. The repository was last updated on October 6, 2026.

Source: ericrisco/rsc-harness on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.