add-python-package
Skill144 starsChanged 17 days agoBSD-3-ClauseView on GitHub
Add a dependency through the project env manager, or ask the user when the environment is user-managed. Trigger when a workflow needs a missing import, after choose-python-library picks a library, or for editable install of src/<pkg>/.
- 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
- 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
- sync-ml-reportsSkill
- triage-ml-taskSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
20 rules. About 0 are common, 4 are distinctive, and 16 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈4
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 33
Run python -m skore_skills … yourself.
- Very specific: line 38
Never paste env graphviz either.
- Very specific: line 56
If policy.env.managed is null: env is unresolved.
- Distinctive: line 61
Do not bootstrap here.
- Very specific: line 64
Editable: only if the user asked to install the workspace package, or setup-ml-project selected that box.
- Distinctive: line 67
Skore: if the package is Skore.
- Very specific: line 71
If managed is false and setup-ml-project dispatched this turn: the opening question already chose user-managed.
- Very specific: line 79
If managed is false on a standalone turn: do not --execute.
- Distinctive: line 82
Every ask in this skill carries its context inline: name the package(s), the manager and env the command would touch, and what each option …
- Distinctive: line 85
Do not name the calling skill.
- Very specific: line 100
If this turn is editable and has_src is true:
- Very specific: line 106
Never pip install -e . in a pixi project.
- Very specific: line 110
If the package is Skore, read the persisted policy.skore_mode and run:
- Very specific: line 117
If the mode is unset, return to evaluate-ml-pipeline.
- Very specific: line 124
No JSON this turn → name env route <pkg> and stop.
- Very specific: line 131
Do not add a context line, a manager command, or a flag to either option.
- Very specific: line 136
When managed is true and scope is not refuse, pass --execute on that one command.
- Very specific: line 140
If this turn is skrub, Graphviz is required for DataOp HTML graphs.
- Very specific: line 158
If --execute fails, quote its repair diagnostic and end this install sequence.
- Very specific: line 162
Never prescribe dot -c, admin rights, or a package-manager repair from memory.
≈ “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
Add Python Package
The only skill that knows python -m skore_skills env add. Callers
must not splice manager commands themselves.
Human-facing prose
Details: setup-workspace references/human_facing_prose.md.
Run python -m skore_skills … yourself. In questions and replies,
show the manager command from print-only stdout (pixi add …,
uv add …, pip install …) or a plain-language intent. Never
paste python -m skore_skills, env add, env add-skore, or
--feature / --group as something the user should run or choose.
Never paste env graphviz either; quote that command's
instructions or printed manager line.
Pre-flight
Tick, then immediately run the matching sequence step. Do not stop after listing the boxes.
- [ ] status + env detect
- [ ] env.managed: null and setup-ml-project installed → load it and stop | null → say unresolved and stop | false and setup already chose unmanaged → name package and manager, return | false → ask, no --execute | true → continue
- [ ] classify: editable | add-skore | env route then env add
- [ ] skrub → env graphviz (install conda Graphviz and verify SVG when allowed)Sequence
python -m skore_skills statusandenv detect.- If
policy.env.managedis null: env is unresolved. Ifstatus.skills.setup-ml-projectis true, loadsetup-ml-projectand stop. Do not ask whether to set up an environment. Do not loadsetup-python-env. If that skill is not installed, say the environment is unresolved and stop. Do not bootstrap here. Classify this turn before adding anything:
- Editable only if the user asked to install the workspace
package, or
setup-ml-projectselected that box.has_srctrue is not enough. - Skore if the package is Skore.
- Named package otherwise (
skrub, pandas, …). Never--editablefor a named dependency.
- Editable only if the user asked to install the workspace
package, or
- If
managedis false andsetup-ml-projectdispatched this turn: the opening question already chose user-managed. Name the package and the manager in words, then return. Do not runenv add— print-only refuses while managed is false. Do not inventpixi add/uv add/pip install. Do not ask. Do not wait. Do not say the turn continues after the user confirms. Stop this sequence. Do not continue at step 5 or step 6. If
managedis false on a standalone turn: do not--execute. Run print-onlyenv add(orenv add --editable, orenv add-skore --mode <mode>) to obtain the manager line. Every ask in this skill carries its context inline: name the package(s), the manager and env the command would touch, and what each option does. Do not name the calling skill. A file link is an addition, never the context. Ask with two options:- I will handle it (default) — name the package(s) and
show that stdout (e.g.
pixi add pandas). Do not wait; return. - Please install this now — show the same manager line, wait until the user confirms it is done, then return.
Show exactly one manager command. Do not list agent extras, optional extras,
ask, or refuse unlessenv routeJSON this turn returned thatscope. If print-only did not run, name the package and the manager in words. Do not invent a wrapper command.- I will handle it (default) — name the package(s) and
show that stdout (e.g.
If this turn is editable and
has_srcis true:python -m skore_skills env add --editable --executeNever
pip install -e .in a pixi project. Ifhas_srcis false, stop. Namesetup-workspaceonly if it is installed. A non-zero exit is not a successful install. Do not describe it as done.If the package is Skore, read the persisted
policy.skore_modeand run:python -m skore_skills env add-skore --mode <mode> --executeIf the mode is unset, return to
evaluate-ml-pipeline. Do not spellskore[...]or pick conda vs PyPI yourself. Seeadd-python-package/references/skore_variant.md.Else
python -m skore_skills env route <pkg>. Use only thescopereturned this turn. Do not list other branches. Do not guessdefault.- No JSON this turn → name
env route <pkg>and stop. Do notenv add --execute. refuse→ stop. Quotemessage. Do not install.default→env add --execute <pkg>agent→env add --feature agent --execute <pkg>ask→ One question, then stop. Two options only: the project runtime, or a named optional extra / agent tools. Do not add a context line, a manager command, or a flag to either option. Do not previewpixi add. Record onlypython -m skore_skills env route <pkg>. The install command waits until the next turn, after they answer.
When
managedis true andscopeis notrefuse, pass--executeon that one command. Never pastepixi add/uv add/pip installfrom memory.- No JSON this turn → name
If this turn is
skrub, Graphviz is required for DataOp HTML graphs. An already-importable skrub still runs this step. Do not return before it becauseimport skrubsucceeds. After the add, runpython -m skore_skills env graphviz. Then:dotis set, oractioniscondaand managed →python -m skore_skills env graphviz --execute(installs conda Graphviz when needed, then verifies pydot can render SVG in the composed env).actionissystemanddotis null → AskUserQuestion with two options, quoting JSONinstructionsonly:- I will install Graphviz (default) — do not wait; return.
- Please wait until I confirm — wait, then re-run
env graphviz --executeto verify SVG rendering.
- Unmanaged → do not
--execute. Showcommand(conda) orinstructions(system) from print-only JSON.
If
--executefails, quote its repair diagnostic and end this install sequence. Return that diagnostic to the caller. Do not discard analysis the caller already finished. When this turn's only job was adding the package, that return ends the turn. Never prescribedot -c, admin rights, or a package-manager repair from memory. Never inventbrew/apt/dnf/pacman/zypper/wingetfrom memory. Do not pip-install Graphviz or add it as a Python package on uv / poetry / hatch / pip-venv. Refuse that in prose; do not pasteenv add graphvizoruv add graphvizas a command fence.
Return when the import is available, when the user confirmed they installed it, when they chose to handle it themselves, or when this setup turn already chose user-managed and the package was named. That last return does not wait.
References
references/skore_variant.md
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.

