Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add probabl-ai/skills --skill audit-ml-pipelinegit clone --depth 1 https://github.com/probabl-ai/skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/probabl-ai/skills/audit-ml-pipeline)<a href="https://agentmods.dev/skills/probabl-ai/skills/audit-ml-pipeline"><img src="https://agentmods.dev/badge/skills/probabl-ai/skills/audit-ml-pipeline/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/probabl-ai/skills/audit-ml-pipeline"><img src="https://agentmods.dev/badge/skills/probabl-ai/skills/audit-ml-pipeline.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00258 | $0.09945 |
| Opus 5.5 | $0.00103 | $0.03978 |
| Sonnet 5.5 | $0.00052 | $0.01989 |
| Haiku 4.5 | $0.00026 | $0.00995 |
Grade A, and why
audit-ml-pipeline scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 13d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 704 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Audit ML Pipeline
Per-experiment, human-readable narrative of a skore report. The
# %% file is the human notebook and is not executed. materialize.py
writes the digest and the HTML viewers in one run. Read-only against
the skore Project.
Human-facing prose
Details: setup-workspace references/human_facing_prose.md.
Audit markdown and # comments describe this report's findings
— 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. Trailing locator tokens stay index strings. Do not
put API tutorials, version floors, or locator recipes in
audit/<stem>.py. <!-- results-embed: … --> is a site marker.
Authoring hints stay in this skill. style is ruff only.
Next-step pointers
| Came here from… | After audit, next is… |
|---|---|
model-ml-pipeline (implement loop) |
→ Return. This audit execution may already materialize its notebook. The caller runs python -m skore_skills loop notebooks --stem <stem> as a freshness gate before record-outcome, then site build and git end-turn --stage implement. |
| User free-text ("audit 02", "re-audit 04") | → Surface metrics, then own the close (see § End of turn) |
| Re-run of an existing experiment | → Re-execute the existing audit file; surface diff if metrics changed |
The implement loop dispatches audit after evaluate and before
record-outcome. The digest carries the checks summary and metrics
summary. G-AUDIT-FINDING is a separate normalized finding derived
from that digest. manage-ml-backlog record-outcome consumes both
and never dispatches audit back.
Where things live — visual map
| Path | Durability | Who writes it | What it holds |
|---|---|---|---|
audit/<NN>_<short_name>.py |
Durable (in git) | This skill, once per experiment | The bare-expression cells. Source of truth. Not executed by the agent. The site notebook is this file with empty outputs |
scratch/audit/<stem>/audit.md |
Ephemeral (gitignored) | materialize.py |
repr of the checks display and the metrics frame. audit finding parses this |
scratch/results/<stem>/materialize.py |
Ephemeral (gitignored) | Evaluate, from evaluate-ml-pipeline/templates/materialize.py |
The only skore.evaluate and project.put. Writes report.html, report.txt, id.txt, checks.html, metrics.html, and the Method viewer |
scratch/results/<stem>/report.html report.txt locator.txt id.txt pipeline/ or pipeline.html |
Ephemeral (gitignored) | Evaluate materialize.py, then the agent writes locator.txt from id.txt |
Full-report viewer, text fallback, locator, DataOp report or graph fallback |
scratch/audit/<stem>/materialize.py |
Ephemeral (gitignored) | This skill, from templates/materialize.py |
Re-opens the report. Writes checks, metrics, audit.md, and extra viewers, plus accessors.txt |
scratch/audit/<stem>/accessors.txt |
Ephemeral (gitignored) | materialize.py |
help() trees. Additional report view labels come from the Displays groups here, not from the notebook |
scratch/results/<stem>/checks.html metrics.html and extra <slug>.html / .png |
Ephemeral (gitignored) | materialize.py |
Per-item viewers the site embeds under ## Results. The digest already carries the text, so no extra .txt is written here |
| Execution digest | Captured from CLI output or the digest path | CLI | Streamed or written digest — the agent reads this directly |
What ships with it
6 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 13d ago Changed · +1 lines cbf69dea7184
- 14d ago Changed · +4 lines 8106b92e6d67
- 17d ago Changed · +23 lines · -6 tokens per session be0edd3805de
- 19d ago Changed · -3 lines 96b55b05fe03
- 21d ago Changed · -11 lines 9e7a8ce9901e
- 22d ago Changed · +12 lines · -8 tokens per session 0851abf8a8ec
- 23d ago Changed · +19 lines · +10 tokens per session 4a27179d48c3
- 24d ago Changed · +26 lines · +12 tokens per session 73712930d515
- 25d ago Changed · -26 lines · -359 tokens per session 0363699785f4
- 1mo ago First seen · 659 lines · 609 tokens per session scan A 50622eed0e79
audit-ml-pipeline is a skill published in the GitHub repository probabl-ai/skills (140 stars, last pushed 14d ago), licensed BSD-3-Clause. It adds 258 tokens to every session and 9,945 once invoked, about $0.0010 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
ds-method
Holds the shared discipline every stage of this pipeline cites — the Red Flags, the Common Rationalizations, and the Hard Gates. Use when someone pushes back on a gate, asks why a baseline is needed, or wants to peek at the test set just once. Use when deciding whether a stage should stop and ask or produce the…
causal-vs-predictive
Separates what a model found from what would happen if a feature were changed, and catches association reported as cause. Use when someone asks whether a feature causes an outcome, or whether changing it would change the result. Use when a write-up says something drives, causes, or leads to the target. Use when a…
notebook-hygiene
Makes a notebook safe to rerun top to bottom and safe to read out of execution order. Use when a notebook only works if cells are run in a particular order, or its current state can no longer be trusted. Use when someone asks to clean up or tidy a notebook before sharing, reviewing, or handing it over.
science-vibecoding
Structured AI-assisted scientific code generation. 6 safety guards, 8 principles, 11 prompt templates. Grounded in Nature (2026).
metabolomics-analysis
Untargeted and targeted metabolomics data analysis using pyMZML, mzTab-M processing, and metabolite identification. Use for LC-MS/GC-MS feature detection, metabolite annotation, differential metabolite analysis, pathway mapping, and metabolic flux visualization. Covers XCMS-compatible workflows in Python.
neuroscience-imaging
Neuroimaging data analysis with nilearn, nibabel, and fMRIPrep outputs. Use for fMRI/MRI data loading, brain atlas parcellation, functional connectivity analysis, GLM-based task fMRI, resting-state network analysis, and publication-quality brain visualizations. Covers structural MRI, task fMRI, and rs-fMRI workflows.