Agent skill

Explore ML Data

by probabl-ai in probabl-ai/skills

Owns data understanding before any model is designed. An agent skill from probabl-ai/skills.

BSD-3-ClauseAuto-check passedData & Analytics

Install Explore ML Data

skills CLI
$ npx skills add probabl-ai/skills --skill explore-ml-data -a claude-code

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

GitHub CLI
$ gh skill install probabl-ai/skills explore-ml-data --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/probabl-ai/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/explore-ml-data .claude/skills/explore-ml-data && 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
explore-ml-data
GitHub stars
135
Token cost
~5.7k tokens
SKILL.md length
2,742 words
Files
13 (incl. references)
Skills in repo
23
Repo updated
First seen
Licence
BSD-3-Clause

At a glance

Owns data understanding before any model is designed. An agent skill from probabl-ai/skills.

  • Works in 6 steps: Resolve / (classification | regression → `python -m skore_skills cells run → Copy templates/facts.py →… → …
  • The user asks to explore
  • SKILL.md covers Human-facing prose, Artifacts, Next-step pointers and Stop conditions, plus 6 more sections
  • Runs Python scripts from its folder; calls python, git and uv

What it does

Explore ML Data is an agent skill from probabl-ai/skills. Owns data understanding before any model is designed. Place dataanalysis/dataanalysis.py, run cells run, write dataanalysis.md and JOURNAL § Data understanding. Never design the model, edit src/<pkg/, or modify raw data files. TRIGGER when the user asks to explore, profile, or understand the data; triage sent them here (status.dataanalysis missing); a data source changed; they want to refresh a recorded EDA; or leakage or research arises on a recorded EDA. STOP when status.setup.pending is non-empty (load…

Its SKILL.md is about 5.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 15 other files, including reference files (for example `evals/evals.json`, `references/cell_anatomy.md` and `references/extra_analyses.md`).

It sits in Data & Analytics, covering Data analysis. It works with Python. The repository describes itself as: Tabular Data Science Skills for guardrailing AI Agents. The licence is BSD-3-Clause.

When your agent uses it

  • The user asks to explore
  • Understand the data
  • Triage sent them here (status.dataanalysis missing)
  • A data source changed

Example prompts

  • “/explore-ml-data”

Requirements

  • Python 3

Workflow steps

6 steps, taken from the first numbered list in SKILL.md.

  1. Resolve / (classification | regression
  2. `python -m skore_skills cells run
  3. Copy templates/facts.py → scratch/data_analysis/facts.py
  4. Write data_analysis/data_analysis.md from
  5. JOURNAL § Data understanding table: Status done — ,
  6. Continuation board — unless the user already closed

What it can do on your machine

Read from SKILL.md and the folder at commit 5edc7a4. 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

    Ships script files (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • python
    • git
    • uv

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

  • Network

    No URLs in SKILL.md. Its commands use git and uv, which can reach the network depending on how they are called.

    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

Explore ML Data loads about 5.7k tokens when it runs, and up to ~7.8k if it reads all its reference files. Until then it costs about 239 tokens; SKILL.md has 2,742 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~239
When it runs · the whole SKILL.md, loaded when a task matches
~5.7k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~7.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 probabl-ai/skills at commit 5edc7a4, republished under its BSD-3-Clause licence (© probabl-ai). 2,742 words, ~5,661 tokens.

Download SKILL.mdSave it as .claude/skills/explore-ml-data/SKILL.md (or your agent's skills folder). This skill also uses 12 other files; get the full folder from GitHub.
name
explore-ml-data
description
Owns data understanding before any model is designed. Place `data_analysis/data_analysis.py`, run `cells run`, write `data_analysis.md` and JOURNAL § Data understanding. Never design the model, edit `src/<pkg>/`, or modify raw data files. TRIGGER when the user asks to explore, profile, or understand the data; triage sent them here (`status.data_analysis` missing); a data source changed; they want to refresh a recorded EDA; or leakage or research arises on a recorded EDA. STOP when `status.setup.pending` is non-empty (load `setup-ml-project`), when there is no data (send to triage), the request is not raw-data exploration, or EDA is recorded with no refresh and no methodology concern. Do not invent a package root or a root `JOURNAL.md` while setup is pending. HOW TO USE: G-TABULAR via `add-python-package`, infer or ask the target, load `plot-ml-figure` if installed, then ask the five-option continuation board, including Close.

Explore ML Data

One project-level exploratory data analysis: a notebook the user can open, HTML reports, a short data_analysis.md that embeds them, and a JOURNAL index row.

Human-facing prose

Details: setup-workspace references/human_facing_prose.md. Notebook markdown, data_analysis.md, JOURNAL text, and # comments describe this dataset — not the skills framework, the CLI, or the command that produced an output. Questions, replies, and the close narrative use the same data-science language — not skill ids, G-* names, or the wrapper CLI. <!-- results-embed: … --> is a site marker. Authoring hints stay in this skill. style is ruff only.

Artifacts

PathAudience
raw data (anywhere)User-owned, read-only
data_analysis/data_analysis.pyHuman notebook — TableReport + ML-gap cells
data_analysis/data_analysis_<slug>.htmlHuman — TableReport page, one per family
data_analysis/*.pngHuman — figures for implications, never glance
data_analysis/<slug>.htmlHuman — Plotly (or other) HTML, iframe in implications
data_analysis/data_analysis.mdHuman + later modelling — TableReport iframes, implications
scratch/data_analysis/<slug>.jsonAgent — TableReport.json() per family; gitignored
scratch/data_analysis/extras.jsonAgent — tables[], target, leakage, png and html paths
JOURNAL § Data understandingIndex: status, 2–4 line summary, link

TableReport owns dtypes, missingness, univariate distributions, cardinality, and top pairwise associations. Extra cells cover duplicates, target distribution, feature-vs-target, and leakage candidates. Do not duplicate TableReport in extra cells.

Details: references/cell_anatomy.md. Extra recipes: references/extra_analyses.md.

Next-step pointers

You came here for…→ next
First EDA (triage or free-text)→ write md; then the five-option continuation board
Continuation pick→ pre-defined option, query, automatic exploration, or describe a plot; no end-turn yet
Close this stage→ convert / site / git end-turn / triage-ml-task if installed
Methodology concern while EDA is done→ skip G-DATA-ANALYSIS; Keep exploring § Automatic exploration (named concern skips the canned survey)
Changed data source or "also plot X"→ overwrite data_analysis/data_analysis.*, refresh JOURNAL

Stop conditions

  • Setup first. Run python -m skore_skills status. If status.setup.pending is non-empty and status.skills.setup-ml-project is true, load setup-ml-project and stop. Do not start this skill. When it returns, continue. Do not load it again on this turn. If that skill is not installed, name the pending pieces in one line and stop. Do not invent git init, scaffold, or env init. If status.setup.env or status.setup.workspace is declined, stop in one line. A declined git or editable is not asked again; continue. Do not define PROJECT_ROOT by hand or write a root JOURNAL.md while workspace setup is pending.
  • Read-only raw data. Never clean, rewrite, or re-save the user's files. Never tell the user to drop a column or file (“drop it”). Leakage stays Open questions / a measure board. Cleaning belongs in build-ml-pipeline.
  • Deliverables under data_analysis/. Raw load may point anywhere.
  • Every ask carries its context. Before any AskUserQuestion in this skill, state in 2–4 lines what the answer authorizes, the facts it rests on — echoed inline, e.g. the file names, the candidate columns, the proposed family slugs — and what each option does. A file link is an addition, never the context.
  • G-DATA-ANALYSIS run | skip. AskUserQuestion. "Go fast" does not skip. Skip → JOURNAL Status row skipped — <date> and stop. Skip is valid only when data_analysis/data_analysis.md is absent (status.data_analysis missing or skipped). If status is present, do not write skipped. Say the written analysis stays, and offer to run exploration again (overwrites data_analysis/data_analysis.*) or keep it. Do not overwrite until the user accepts the re-run. A named methodology concern while EDA is done still skips this gate. Do not run site build on skip. The unfitted snapshot build in build-ml-pipeline still runs before Evaluate.
  • IPython on the run path. Missing → add-python-package for ipython (env route agent). Decline → skip path. Do not pixi add / fabricate output.
  • G-TABULAR before data_analysis/data_analysis.py. status.policy.tabular; else choose-python-library (recommend pandas) then add-python-package for that lib and skrub, matplotlib, and seaborn. No silent default. If G-TABULAR, target, or families are unanswered, stop after the asks — no default-path notebook, even as a “Deliverable A assuming pandas.” Do not install sklearn / skore / pytest unless the user picked an extra that needs them.
  • Target. Infer from JOURNAL Status / the user prompt when the column is obvious. Otherwise AskUserQuestion (column names plus "no target yet") and stop — write no notebook yet. Do not list feature-vs-target / leakage as always-on next steps. After a named column, append that one target snippet. After “no target yet” or Decline → <TARGET>=None, <TASK>=none; TableReport + duplicates only. Do not persist a policy key.
  • No train/test split. The modeling-decisions lock owns that choice later. Do not split during EDA. If the files already are a training table and a test table, name both in the summary and do not concatenate them. Exploration does not choose the evaluation. Leakage cells are qualitative flags on the raw family that holds the target. Further families use templates/family.py only (TableReport + duplicates) — no leakage / target / bivariate cells on a family that does not hold the target. Do not persist a joined modeling table.
  • Families before the notebook. More than one data file → AskUserQuestion grouping (none recommended): Use a proposed grouping / Profile every file separately / I will describe the grouping. Propose clusters from extension, name pattern, or a header/schema peek; generic slugs (family_a). Inventing families means writing them before the answer, not proposing those slugs in the ask. One file → skip this ask.
  • api get this turn for symbols used (cache hits count). TableReport.json() keys drift — .get(...).
  • One data_analysis/data_analysis.py. Repeat the TableReport cell per confirmed family (or per file if the user picked that). Re-run overwrites in place. Default notebook = those templates only (plus the matching target snippet). Do not add extra histograms, sns.heatmap / association matrices, unique-ratio (nunique()/n), column-dicts, or report.json() cells. The duplicate cell prints the duplicate count only, not a uniqueness percentage and not nunique()/n. Leakage is the template table, not a comment. Default figures: seaborn displot for the target only inside templates/target_regression.py / target_classification.py (describe + one target figure). Copy that snippet into the live notebook; do not invent a second target histogram next to TableReport. One faceted relplot → bivariate_grid.png, last expression g. Do not import matplotlib.pyplot on the default path.
  • Do not design the model. Implications in data_analysis.md only.
  • Do not gitignore data_analysis/. Ignore specific raw patterns via setup-git if the user asks (default: don't).

Pre-flight

- [ ] Setup: pending empty | load setup-ml-project and stop
- [ ] Detect: status.data_analysis present|skipped|missing
- [ ] G-DATA-ANALYSIS: run | skip when the analysis file is absent (skip → JOURNAL only, STOP). present → keep or re-run; never write skipped
- [ ] G-TABULAR + add frame lib + skrub + matplotlib + seaborn
- [ ] Target: inferred | AskUserQuestion | none
- [ ] Families: one file | AskUserQuestion grouping
- [ ] IPython available or add-python-package
- [ ] Load plot-ml-figure if installed; place
      data_analysis/data_analysis.py from the template (edit to
      the live path); cells run
- [ ] scratch/data_analysis/facts.py → <slug>.json per family
      + extras.json
- [ ] Author data_analysis.md + JOURNAL
- [ ] Preview `site build` if `policy.site` (skip on G-DATA-ANALYSIS skip)
- [ ] AskUserQuestion five options, including Close (skip if user
      already closed the turn)

Tick, then run the matching step. Re-emit the checklist with evidence. End of turn only after Close.

Before execution

After G-DATA-ANALYSIS, G-TABULAR, target, families, and IPython are resolved, emit 1–3 natural sentences immediately before the first notebook write / cells run. Say that this is local computation: it profiles the confirmed full table family or families, runs duplicate / target / bivariate / leakage analyses that apply, and writes data_analysis/ HTML / figures plus scratch/data_analysis/ JSON facts. Name the data scope and the report paths; do not dump Pre-flight as the explanation.

Describe cost from facts, not guesses. TableReport and requested plots scale with table size and number of families; unless a measured duration is already available, say timing depends on those inputs and do not invent minutes. Emit this preview once, not before every cell command; refresh it only when a newly selected extra materially changes the work.

Automatic exploration / a methodology discussion is LLM research, not model fitting or testing: say that it will reason over the recorded EDA, may write a scratch research note, and will stop at a measurement-choice board before local analysis. If a mandatory gate is pending, preview the possible work but do not write or execute the notebook.

Procedure (run path)

  1. Resolve <TARGET> / <TASK> (classification | regression | none) first. Resolve families (stop condition above). Copy templates/data_analysis.py if it fits, then edit — do not paste unused branches. The first family is the one that contains <TARGET> when a target exists; substitute <pkg>, <LOAD_RAW_DATA> (in-memory concat of that family's shards; optional _source_file), <slug> (Python identifier). Each further family → templates/family.py (<OTHER_SLUG>, <LOAD_OTHER>). Append templates/target_regression.py or templates/target_classification.py (set TARGET / TASK in the first-family load cell). No target → neither snippet, no TARGET / TASK lines. Datetime columns on a family → templates/datetime.py for that family (drop the relplot cell if there is no numeric target). Two families that share column names → templates/drift.py with <OTHER_FRAME>. Disjoint schemas → no drift on the default pass. Do not append join-coverage cells here. Generated notebook must not contain if TARGET, if TASK, OTHER = None, empty datetime loops, or “skip this cell”. Load plot-ml-figure if installed before writing figure cells (including this first write). Markdown is about this analysis. python -m skore_skills style after the write.

  2. python -m skore_skills cells run data_analysis/data_analysis.py — writes HTML and PNGs. A useless TableReport repr in the digest is expected.

  3. Copy templates/facts.py → scratch/data_analysis/facts.py with the same families and target; run it; read scratch/data_analysis/<slug>.json (each family) and extras.json.

  4. Write data_analysis/data_analysis.md from templates/data_analysis.md: glance (one iframe per family and nothing else), modelling implications (include feature-engineering candidates), open questions. Reports and figures are embedded, not linked; ![](<name>.png) or an HTML iframe (<iframe src="<slug>.html" …>) sits beside the implication it supports, never in the glance. Glance stays TableReport-only. Every extras["pngs"] and extras["htmls"] path is embedded, each with a sentence citing numbers from those JSON files (or a notebook summary table). Do not save a figure that earns no such sentence. Ground claims in both JSON files and the HTML. Do not invent columns.

  5. JOURNAL § Data understanding table: Status done — <date>, short summary (shape, target balance/skew, one or two findings that shape modelling), Report [data_analysis/data_analysis.md](../data_analysis/data_analysis.md). Skip path: Status row only. Do not convert or git end-turn on skip.

  6. Continuation board — unless the user already closed the turn (“EDA is done”, “close the turn”): if policy.site is true and export-ml-site is installed, run python -m skore_skills site build first. Skip in one line otherwise. If site build errors with mkdocs-material is required, load add-python-package for mkdocs-material (agent) and build once more. Do not pixi add / uv add. If that skill is missing, or the retry still fails, name the error in one line. Name a build error; do not fail the gate. Link data_analysis/data_analysis.md plus report.html and html/data_analysis.html when the build ran. Do not notebook convert or git end-turn on this preview. Then AskUserQuestion one pick. None is recommended or preselected. After the first md, always ask (including when triage sent you here). Do not say “extra-analyses” or “standard extra analysis” on this board.

    LabelSubtitle
    Choose additional pre-defined optionName only items that apply: interactions / pairplot, PCA, hypothesis tests, subgroup, time-series, text or geo, join keys / coverage (2+ families)
    Provide a query to extend the explorationDescribe an analysis to add to the notebook (table, test, or plot)
    Automatic exploration related to the data and problemDo in-depth research related to the problem and data that we are exploring
    Describe a plotYou name a chart and I add cells for it
    CloseEnd this stage. Do not add another analysis.

    Close → End of turn (User-facing close). Do not rewrite data_analysis.md on Close. The other four picks go to Keep exploring and do not ask this board again for the same pick. Duplicate / target / leakage stay in Modelling implications, not only Open questions.

If the original prompt already named extras (e.g. PCA), include those cells in step 1 and do not re-ask that extra.

Import failures → add-python-package, do not work around.

Refresh (already done, user asks for more plots): edit the .py, re-run steps 2–5, then step 6. Do not re-ask G-DATA-ANALYSIS.

Methodology concern while status.data_analysis is present (leakage / “research this”): skip G-DATA-ANALYSIS; do not overwrite the notebook; go to Keep exploring § Automatic exploration with that named concern (skip the canned extra-analysis survey).

Always load plot-ml-figure if installed before writing or rewriting figure cells. The template is not a license to skip the plotting worker. Missing skill → one-line skip and still follow that tree (seaborn statistical, pandas simple chart, matplotlib last). Never plt.close in notebook cells: save PNG then leave the figure/grid as the cell output.

Show full SKILL.md (831 more words)Show less

Keep exploring

No convert, no git end-turn. Do not run a second site build until the md is rewritten. Do not say “extra-analyses” or “standard extra analysis” anywhere this turn (chat, checklists, or the board). The file references/extra_analyses.md may be named as a path only. The continuation board was already asked. Handle the picked label. Do not ask keep-versus-close, and do not repeat the board for this pick.

  1. Pre-defined option — the recipe file references/extra_analyses.md (path only; do not say “extra-analyses” in chat). Its own allow_multiple board, all unchecked. Load plot-ml-figure if installed before figure cells.

  2. Query — wait for the user’s analysis request. Append cells (load plot-ml-figure if a figure). Not the canned research survey. Then the refresh step.

  3. Automatic exploration — load research-ml-practice if installed with stage data_analysis and the canned survey concern below. Missing skill → one-line skip and re-ask the five-option board without another site build. Do not ask intake. Pass JOURNAL, data_analysis.md (implications + open questions), and scratch/data_analysis/extras.json as context. The worker abstracts the problem class (no dataset proper name) before searching. Canned question:

    Given the kind of problem in JOURNAL (domain, task, constraints) and the kinds of structure already seen in EDA (not the dataset’s proper name), what extra measurements on a raw table like this are still worth doing?

    Read scratch/research/survey-<slug>.md. Summarize in chat; do not dump the note. If tools did not run, two sentences on the named concern (for leakage: provenance / scoring-time availability) plus the measure board — do not claim a scratch file was read. Do not say to drop a raw column. AskUserQuestion allow_multiple (unchecked) on only sourced measure extras that are not already in the notebook. Map onto extra_analyses when a recipe exists; else a custom cell. declare / evaluate / confirm stay off this board → Open questions as advice, not findings. Do not copy Open questions onto the board unless the survey note listed them with a source.

    A user-named methodology concern (leakage / “research this”) skips the canned survey: pass that concern for depth, then the same measure board. Summarize as above if tools did not run; do not say to drop a raw column.

  4. Describe a plot — load plot-ml-figure if installed; append cells.

  5. Picks that change the .py: style, cells run, refresh facts, rewrite data_analysis.md from JSON/PNGs/HTML (implications from results). Then preview site build if policy.site and re-ask the five-option board (run path step 6). Do not invent domain checklists.

Dispatch

Called from triage-ml-task (explore-the-data intent, or explore-first on a modeling request while data_analysis is missing) and user free-text.

Calls: add-python-package, api get, choose-python-library / stack for G-TABULAR, research-ml-practice if installed when the user wants extra-analysis research or a named methodology concern, plot-ml-figure if installed before any figure cells (default notebook, extras, free-text, research-measure), style after data_analysis.py.

Need a package? Load add-python-package if installed; else name it and stop. Do not env add here.

End of turn

Run this block only after Close (or when the user already closed the turn). Keep exploring never reaches here. Do not rewrite data_analysis.md in this block.

User-facing close

The user-facing message is a short story plus links. It is not Pre-flight, not a dump of markdown, and not JOURNAL table cells alone.

  1. Narrative first — 2–6 sentences of findings for this stage, grounded in Modelling implications / the JSON facts (shape, target, leakage or duplicates that shape modelling). Do not invent columns. Do not paste data_analysis.md.
  2. Open these — resolved absolute paths (TUI clickability). When site build ran or is about to, link the site and not the markdown: [report.html](<workspace>/report.html) and html/data_analysis.html. Otherwise [data_analysis/data_analysis.md](data_analysis/data_analysis.md). No Skore locator on this stage.
  3. Normalized tokens second — none for EDA (no G-REPORT-LOCATOR / G-AUDIT-FINDING).

This skill owns the close. Keep exploring stays a 1–2 sentence summary (optional md / site link); it never reaches convert / git end-turn.

If policy.notebooks is true, export-ml-notebook is installed, run python -m skore_skills notebook convert data_analysis/data_analysis.py, with --html when policy.site is also true. Skip in one line otherwise. If convert fails because ipywidgets is missing, load add-python-package for it (agent) and convert again. Missing jupytext / nbclient / nbconvert → one-line skip naming add-python-package; do not fail the turn, do not pixi add.

Then, if policy.site is true, export-ml-site is installed, run python -m skore_skills site build after durable files are on disk. Skip in one line otherwise. If site build errors with mkdocs-material is required, load add-python-package for mkdocs-material (agent) and build once more. Do not pixi add / uv add. If that skill is missing, or the retry still fails, name the error in one line. Name a build error; do not fail the data-analysis turn. Name report.html and html/data_analysis.html in the User-facing close when the build ran. Do not also send the user to the markdown.

python -m skore_skills git end-turn --stage data_analysis. If JSON action is invoke, load persist-ml-git only if status.skills.persist-ml-git is true and stop; that skill returns to triage. If persist is missing, name the pending staged paths and stop. Otherwise load triage-ml-task only if status.skills.triage-ml-task is true; else stop. No git commit.

© probabl-ai, BSD-3-Clause. 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 12 other files (references) in skills/explore-ml-data of probabl-ai/skills.

  • SKILL.md
  • evals/evals.json
  • references/cell_anatomy.md
  • references/extra_analyses.md
  • templates/data_analysis.md
  • templates/data_analysis.py
  • templates/datetime.py
  • templates/drift.py
  • templates/facts.py
  • templates/family.py
  • templates/join_coverage.py
  • templates/target_classification.py
  • templates/target_regression.py

Open the folder on GitHubat commit 5edc7a4

Compare with similar skills

Explore ML Data 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.

Explore ML Data compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Explore ML Data this skillprobabl-ai/skills135—~5.7kAutomated safety check: PassBSD-3-Clause
Excel and CSV Data Analysisbytedance/deer-flow83k4 repos~2.2kAutomated safety check: PassMIT
Python Executorcortega26/chile-hub1132 repos~1.5kAutomated safety check: PassMIT
MatlabzLanqing/codex-claude-academic-skills4.6k9 repos~2.3kAutomated safety check: NotesGPL-3.0
Raccoon DataanalysisSenseTime-Copilot/raccoon-dataanalysis-skill137—~1.9kAutomated safety check: PassNone
Meridian MMM Model Buildinggoogle/meridian1.6k—~2.5kAutomated safety check: PassApache-2.0

Similar skills

  • Excel and CSV Data Analysis

    bytedance/deer-flow

    Analyzes uploaded Excel and CSV files with SQL through DuckDB, producing schema inspections, statistical summaries and exports to CSV, JSON or Markdown.

    83k GitHub starsUsed in 4 repos~2.2k tokens
    Data & AnalyticsAuto-check passed
  • Python Executor

    cortega26/chile-hub

    Execute Python code in a safe sandboxed environment via [inference.sh](https://inference.sh).

    113 GitHub starsUsed in 2 repos~1.5k tokens
    Data & AnalyticsAuto-check passed
  • Matlab

    zLanqing/codex-claude-academic-skills

    MATLAB and GNU Octave numerical computing for matrix operations, data analysis, visualization, and scientific computing.

    4.6k GitHub starsUsed in 9 repos~2.3k tokens
    Data & AnalyticsAuto-check: notes
  • Raccoon Dataanalysis

    SenseTime-Copilot/raccoon-dataanalysis-skill

    Raccoon (小浣熊) Data Analysis - Remote code interpreter and data visualization service powered by SenseTime.

    137 GitHub stars~1.9k tokensUpdated 6 mo ago
    Data & AnalyticsAuto-check passed
  • Official

    Takes a user through building a Meridian marketing mix model, from loading CSV data and mapping columns to running EDA, fitting and saving the model.

    1.6k GitHub stars~2.5k tokensUpdated today
    Data & AnalyticsAuto-check passed
  • Pandas Pro

    Jeffallan/claude-skills

    Handles pandas DataFrame work: cleaning, merging, groupby aggregation, pivots, time-series resampling and memory tuning, with checks on dtypes, shapes and nulls.

    12k GitHub starsUsed in 1 repo~1.5k tokens
    Data & AnalyticsAuto-check passed

More from probabl-ai/skills

All 23 skills in this repo
  • Add Python Package

    probabl-ai/skills

    Add a Python dependency through the project env manager, or ask the user to install it when env.managed is false.

    135 GitHub stars~1.8k tokensUpdated today
    Auto-check passed
  • Build ML Pipeline

    probabl-ai/skills

    Declare the pipeline from data source to predictor as a skrub DataOps graph.

    135 GitHub stars~4k tokensUpdated today
    Auto-check passed
  • Evaluate ML Pipeline

    probabl-ai/skills

    Evaluate one learner with skore.evaluate. An agent skill from probabl-ai/skills.

    135 GitHub stars~4.2k tokensUpdated today
    Auto-check passed
  • Setup Workspace

    probabl-ai/skills

    Detect an existing ML workspace or scaffold a fresh one via python -m skoreskills scaffold --package <pkg.

    135 GitHub stars~1.5k tokensUpdated today
    Auto-check passed
  • Audit ML Pipeline

    probabl-ai/skills

    Read-only audit of one persisted skore report: audit/NN<stem.py (jupytext percent), 1:1 with experiments/ and journal/.

    135 GitHub stars~9.5k tokensUpdated today
    Auto-check passed
  • Export ML Notebook

    probabl-ai/skills

    Convert a jupytext percent %% Python file into an executed .ipynb with cell outputs.

    135 GitHub stars~1k tokensUpdated today
    Auto-check passed

Works with

Questions about Explore ML Data

What does Explore ML Data do?

Owns data understanding before any model is designed. An agent skill from probabl-ai/skills. Explore ML Data is an agent skill from probabl-ai/skills. Owns data understanding before any model is designed.

When should I use Explore ML Data?

Explore ML Data fits situations like: the user asks to explore; understand the data; triage sent them here (status.dataanalysis missing); A data source changed.

How do I install Explore ML Data in Claude Code?

Run `npx skills add probabl-ai/skills --skill explore-ml-data -a claude-code`. Or copy the skill folder (skills/explore-ml-data in probabl-ai/skills) into .claude/skills/explore-ml-data in your project. Claude Code loads it when a task matches its description.

How do I install Explore ML Data in Codex?

Run `npx skills add probabl-ai/skills --skill explore-ml-data -a codex`. Or copy the skill folder (skills/explore-ml-data in probabl-ai/skills) into .agents/skills/explore-ml-data in your project. Codex loads it when a task matches its description.

Can I use Explore ML Data 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 probabl-ai/skills --skill explore-ml-data -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/explore-ml-data, .gemini/skills/explore-ml-data, .github/skills/explore-ml-data and .opencode/skills/explore-ml-data in your project.

What does Explore ML Data need to run?

Going by SKILL.md and its folder, Explore ML Data needs Python for the scripts in its folder and the command-line tools its instructions call (python, git and uv). Our summary lists: Python 3.

Does Explore ML Data access the network?

SKILL.md contains no URLs. Its commands use git and uv, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Explore ML Data 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 Explore ML Data use?

Explore ML Data is published under the BSD-3-Clause licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Explore ML Data use?

About 5.7k tokens (SKILL.md is roughly 23k 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 2.2k tokens, read only when the agent opens those files.

What are the alternatives to Explore ML Data?

Skills that share tags, products or a category with Explore ML Data: Excel and CSV Data Analysis (bytedance/deer-flow, 83k stars), Python Executor (cortega26/chile-hub, 113 stars), Matlab (zLanqing/codex-claude-academic-skills, 4.6k stars) and Raccoon Dataanalysis (SenseTime-Copilot/raccoon-dataanalysis-skill, 137 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Explore ML Data?

probabl-ai (a GitHub organization) maintains it in probabl-ai/skills, which has 135 GitHub stars. The repository holds 23 skills in this directory. The repository was last updated on October 6, 2026.

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