export-ml-notebook
Skill144 starsChanged 17 days agoBSD-3-ClauseView on GitHub
Write a jupytext percent file out as a notebook with empty outputs. `data_analysis/`, `experiments/`, and `audit/` are filled with empty outputs. Pass `--html` when that notebook should also become a viewer on the site. Kernel `notebook convert` stays for a source that is itself the execution. Trigger on notebook, ipynb, HTML, or executed-report requests, or when export-ml-project dispatches notebooks.
1 other project uses a version of this.
Adopted by
Most recently taken up by
- probabl-ai/skillsword for word, first seen Oct 27, 2026
Other versions1 project uses a version of this.
Word for word · 1
- probabl-ai/skills★ 144100% same
Edited · 0
None found.
Wrote their own version · 0
None found.
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository26 other files it gives its agents.
- AGENTS.mdAGENTS.md
- add-python-packageSkill
- audit-ml-pipelineSkill
- build-ml-pipelineSkill
- choose-python-librarySkill
- evaluate-ml-pipelineSkill
- explore-ml-dataSkill
- export-ml-projectSkill
- export-ml-siteSkill
- frame-ml-problemSkill
- manage-ml-backlogSkill
- model-ml-pipelineSkill
- persist-ml-gitSkill
- plot-ml-figureSkill
- research-ml-practiceSkill
- review-ml-choicesSkill
- review-ml-experimentSkill
- search-ml-literatureSkill
- setup-gitSkill
- setup-ml-projectSkill
- setup-python-envSkill
- setup-workspaceSkill
- shape-user-ideaSkill
- smoke-test-ml-pipelineSkill
- sync-ml-reportsSkill
- triage-ml-taskSkill
The file
We split this skill into the rules it gives an agent
12 rules. About 0 are common, 2 are distinctive, and 10 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
10
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 40
Only policy.notebooks true enables automatic notebook materialization.
- Very specific: line 44
When true, exploratory analysis uses materialize.py as its
- Very specific: line 58
Run status and read policy.notebooks.
- Very specific: line 74
If policy.notebooks is null: persist python -m skore_skills policy set notebooks true.
- Very specific: line 78
If policy.notebooks is false: say notebooks are off.
- Very specific: line 95
If the user wants the notebook on the site, load add-python-package for nbconvert (agent) and pass --html (writes a self-contained …
- Very specific: line 118
After --html, if policy.site is true, export-ml-site is installed, run python -m skore_skills site build --if-stale so the viewer is …
- Distinctive: line 126
If that skill is missing, or the retry still fails, name the error in one line.
- Distinctive: line 136
Do not git commit or git end-turn.
- Very specific: line 137
Do not run cells run as a substitute for fill.
- Very specific: line 138
Do not pixi add / uv add; load add-python-package.
- Very specific: line 140
Do not name --html or python -m skore_skills site build unless the user asked for HTML or a site viewer.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Export ML Notebook
Source of truth stays the # %% .py. This skill only writes
derived .ipynb (and optional .nb.html). Do not rewrite the
.py from the notebook. cells run is not a substitute.
Human-facing prose
Details: setup-workspace references/human_facing_prose.md.
Tell the user the written .ipynb (and HTML viewer) paths. Do
not quote notebook convert, --html, or site build as
something they should run.
While policy.notebooks is true, explore-ml-data fills the
analysis file it wrote. model-ml-pipeline and
evaluate-ml-pipeline fill the experiment script and, when it
exists, audit/<stem>.py, with empty outputs.
audit-ml-pipeline fills audit/<stem>.py only on a direct
close. This skill owns on-demand fills, other sources, and
turning the flag on when it is null or false. A data-analysis,
experiment, or audit source uses notebook fill, not
notebook convert.
Workflow checkpoint execution
Stage owners read policy before executing a human # %% source.
Only policy.notebooks true enables automatic notebook
materialization; null and false keep the stage's non-notebook
execution and do not change policy.
When true, exploratory analysis uses materialize.py as its
one run, then notebook fill writes the .ipynb with empty
outputs. Add --html only when policy.site is also true. An
experiment or audit file is the same: notebook fill writes the
.ipynb with empty outputs, and materialize.py is the run that
writes the digest and the HTML viewers. Do not notebook convert
those files and do not cells run them. Kernel notebook convert
stays only for a source that is itself the execution (the unfitted
experiment snapshot). A generated notebook records its source
fingerprint; loop notebooks fills or converts again only when
the source or required HTML changed.
Lookup
Run status and read policy.notebooks. Take the first row that
matches. Fill leaves code-cell outputs empty. Do not stop after
reading the table.
policy.notebooks | Request | Then |
null | any | step 2, then match this table again. Do not take the convert row only because it is listed first. |
false | any | step 3. Do not fill until the policy is true. |
true | the user asked for HTML, a site viewer, or the notebook on the site | step 4 notebook fill --html, then step 5. data_analysis/, experiments/<stem>.py, and audit/<stem>.py stay notebook fill, not notebook convert. |
true | the source is itself the execution (unfitted experiment snapshot, before skore.evaluate) and the user did not ask for HTML or a site viewer | kernel notebook convert, not notebook fill |
true | notebook, ipynb, or convert, with no HTML and no site viewer | step 4 notebook fill only. No --html. No site build. |
Sequence
python -m skore_skills status. Readpolicy.notebooksandskills.- If
policy.notebooksisnull: persistpython -m skore_skills policy set notebooks true. Do not AskUserQuestion. Then loadadd-python-packageforjupytextandnbformat(agent) and continue. - If
policy.notebooksis false: say notebooks are off; offer to turn them on. Do not fill until the policy is true. Fill the requested percent file (default
data_analysis/data_analysis.pywhen the user did not name one):python -m skore_skills notebook fill data_analysis/data_analysis.pyFill does not execute the file and leaves code-cell outputs empty. It needs jupytext and nbformat, not nbclient, ipywidgets, or IPython. Do not start EDA, an evaluation, or an audit from this skill to produce those outputs.
experiments/<stem>.pyandaudit/<stem>.pyare filled the same way. Missingjupytext/nbformat/nbconvertstays a one-line skip.If the user wants the notebook on the site, load
add-python-packagefornbconvert(agent) and pass--html(writes a self-contained<stem>.nb.htmlnext to the.py). The site links that file from the associated exploratory data analysis or design report. It opens as a page of its own.Optional
--out path.ipynb. Keep*.ipynbgitignored unless the user askssetup-gitto track them.Fill-only requests (notebook / ipynb / convert, no HTML or site viewer): run only that
notebook fillline, with no--html. Tell the user the written.ipynbpath. Do not mention--htmlorsite buildas an optional aside.Kernel
notebook convertis only for a source that is itself the execution: the unfitted experiment snapshot, beforeskore.evaluateexists. Convert injects%matplotlib inlinefor that kernel run so seaborn / matplotlib last expressions emitimage/png, then strips that setup cell from the written notebook. Do not put%matplotlib inlinein the.py(style/ ruff would reject it). If that convert fails becauseipywidgetsis missing, loadadd-python-packagefor it (agent) and convert again.- After
--html, ifpolicy.siteis true,export-ml-siteis installed, runpython -m skore_skills site build --if-staleso the viewer is packaged. Run--htmlandsite buildonly when the user asked for HTML or a site viewer. Fill without--htmldoes not rebuild the site. Skip in one line otherwise. Ifsite builderrors withmkdocs-material is required, loadadd-python-packageformkdocs-material(agent) and build once more. Do notpixi 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 fill, and do not claim the website was updated. When the build ran, say the website has been updated and paste thefile://line from that output verbatim. Do not name the markdown file or the HTML viewer path. Do not quote the CLI.
Stop conditions
- Do not
git commitorgit end-turn. - Do not run
cells runas a substitute for fill. - Do not
pixi add/uv add; loadadd-python-package. - Missing skill or missing source → one-line skip.
- Do not name
--htmlorpython -m skore_skills site buildunless the user asked for HTML or a site viewer. Tell the user paths, not the CLI.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

