sync-ml-reports
Skill144 starsChanged 17 days agoBSD-3-ClauseView on GitHub
Copy skore reports between local, Hub, and MLflow, and optionally switch the upload destination. Trigger when the user asks to sync or migrate reports, switch skore mode, upload reports to Hub or MLflow, or pull Hub/MLflow reports onto disk. First G-SKORE-MODE pick stays evaluate-ml-pipeline.
- Reads credentials
- Installs packages
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-notebookSkill
- 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
- triage-ml-taskSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
17 rules. About 0 are common, 1 is distinctive, and 16 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
16
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 21
Ask where reports live (disk, Hub, MLflow) in those words.
- Very specific: line 28
Run python -m skore_skills status.
- Very specific: line 35
If policy.skore_mode is unset: STOP.
- Very specific: line 58
MUST NOT contain /. MLflow: ask tracking_uri.
- Very specific: line 61
Project name: if name= is missing or disagrees across files.
- Very specific: line 65
If intent is switch and destination equals policy.skore_mode, stop in one line.
- Very specific: line 74
If Hub is source or destination: require SKORE_HUB_API_KEY in the environment.
- Very specific: line 99
If the user picked dry-run first, run with --dry-run, show the plan, then ask to transfer.
- Very specific: line 113
If dest is local, mkdir reports (exist_ok).
- Very specific: line 114
If hub or mlflow, do not create reports/.
- Very specific: line 115
If journal/JOURNAL.md exists, insert a --- under History and one line skore_mode: <old> → <dest> (sync-ml-reports).
- Very specific: line 120
Copy-only: do not policy set, rewrite init, mkdir, or edit JOURNAL.
- Very specific: line 125
Do not steal first G-SKORE-MODE when skore_mode is unset.
- Distinctive: line 126
Do not silently change a recorded mode.
- Very specific: line 129
Do not evaluate, project.put, or audit.
- Very specific: line 130
Do not pass *-workspace on an MLflow endpoint.
- Very specific: line 131
Do not omit *-workspace on a local or Hub endpoint.
≈ “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
Sync ML Reports
Copy reports with the skore CLI. Switch the default destination
only when the user asked to. Do not evaluate, audit, or invent
Project.sync Python.
Human-facing prose
Details: setup-workspace references/human_facing_prose.md.
Ask where reports live (disk, Hub, MLflow) in those words. Do not
name G-SKORE-MODE, skill ids, or the wrapper CLI in the
question. skore sync output may appear in the close as the
sync table.
Procedure
- Run
python -m skore_skills status. Readpolicy.skore_modeandskills. Openexperiments/andaudit/for theskore.Project(...)init block:name=, Hubworkspace=, MLflowtracking_uri=. Local store is always the workspacereports/directory (absolute path). Never omit--from-workspace/--to-workspaceon a local endpoint. - If
policy.skore_modeis unset: STOP. First pick is G-SKORE-MODE inevaluate-ml-pipeline. Do not ask local / hub / mlflow here. Load that skill only ifstatus.skills.evaluate-ml-pipelineis true and the user asked to evaluate; else one-line skip. The close is only this stop: the destination is not chosen yet and is picked when a report is stored. Do not list local, Hub, or MLflow, a workspace name, or a tracking URI. Do not use the source-to-destination close below. AskUserQuestion for any answer not already in the request. Ahead of each question, state in 2–4 lines what the answer authorizes — which reports move where, whether
skore_modeand the Project init lines get rewritten — and the facts it rests on: the current mode, the discovered report count, the endpoint. A file link is an addition, never the context.- Intent. Switch default destination (sync, then persist
skore_modeand rewrite every Project init) vs copy only (sync, leave policy and experiment files). - Destination — same three options as G-SKORE-MODE:
local(disk, no account),hub(https://skore.probabl.ai),mlflow(tracking server). Hub: ask the workspace name; it MUST NOT contain/. MLflow: asktracking_uri; confirm a barehost:portashttp://host:port. Do not default the URI. - Project name if
name=is missing or disagrees across files. - Dry-run first vs transfer now.
If intent is switch and destination equals
policy.skore_mode, stop in one line.- Intent. Switch default destination (sync, then persist
- Destination extras: load
add-python-packageonly ifstatus.skills.add-python-packageis true, for Skore at the destination mode (env add-skore --mode <dest>). If that skill is missing, name Skore for the destination and stop. Do not splicepip install/skore[...]here. - If Hub is source or destination: require
SKORE_HUB_API_KEYin the environment. Missing → name it and stop. Do not open a browser login. Do not read.skorefor the key. Build
skore sync. Ifskoreis not on PATH, nameskore-cliand stop. Do not callskore.Project.syncin Python.skore sync <project> --from=<source_mode> --to=<dest_mode>Source mode is
policy.skore_mode. Add:Endpoint Flags local --from-workspaceor--to-workspace= resolvedreports/hub --from-workspaceor--to-workspace= Hub workspace name (required)mlflow --tracking-uri=...; never*-workspace--to-projectonly if the destination name differs.--hub-urlonly whenSKORE_HUB_URI(or the user) names a non-default Hub.--bothonly if the user asked to copy missing reports both ways. Otherwise one-way.If the user picked dry-run first, run with
--dry-run, show the plan, then ask to transfer. Live run omits--dry-run.Usage/auth/backend errors: name stdout/stderr and stop. Do not invent a Python fallback. Empty output
No reports to synchronize.is success (nothing to copy; a switch may still continue).Switch intent only, after a successful (or empty) sync:
python -m skore_skills policy set skore_mode <dest>. Rewrite every Project init inexperiments/andaudit/to the destination form inevaluate-ml-pipeline/references/g_skore_mode.md(audit must match the paired experiment, byte-for-byte modulo formatting). If dest is local,mkdir reports(exist_ok); no README. If hub or mlflow, do not createreports/. Ifjournal/JOURNAL.mdexists, insert a---under History and one lineskore_mode: <old> → <dest> (sync-ml-reports). Missing journal → skip in one line; do not paste a JOURNAL body.Copy-only: do not
policy set, rewrite init, mkdir, or edit JOURNAL.
Stop conditions
- Do not steal first G-SKORE-MODE when
skore_modeis unset. - Do not silently change a recorded mode; switch requires the switch intent (or an explicit user request to switch).
- Do not
git commit. - Do not evaluate,
project.put, or audit. - Do not pass
*-workspaceon an MLflow endpoint. - Do not omit
*-workspaceon a local or Hub endpoint.
End of turn
User-facing close
This close applies only after a sync. An unset policy.skore_mode
uses the step-2 stop instead.
Short story: source → destination, whether policy changed, and
the skore sync table or No reports to synchronize. Do not
dump experiment files.
Then python -m skore_skills git end-turn --stage evaluate
(the persist bucket for this work; this is not a CV run). 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.
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.

