SuperAPI AI Directory

setup-python-env

Deployment & operations

View repository

Updated 10-16 09:55

About this skill

Set Up Python Environment

Bootstrap only. Direct packages this turn: ruff, ipython, ipykernel, and plain skore. Skore supplies skore-skills as a mandatory dependency. Other stage libraries go through add-python-package.

Human-facing prose

Details: setup-workspace references/human_facing_prose.md. Ask which manager to use and whether we manage the env in plain language. Do not name G-ENV-MGR, skill ids, or the wrapper CLI to the user. Do not mention skore-skills.

Lookup

Run env detect and status first. Take the first row that matches, then run Sequence steps 3–6 only where the row says ask or continue. Do not stop after reading the table.

Caller policy.env_manager policy.env.managed Manager question Managed question
dispatched set true or false skip skip
dispatched set null skip ask
dispatched unset true or false ask when detect is none, ambiguous, or mismatch skip
dispatched unset null ask when detect is none, ambiguous, or mismatch ask
standalone any any ask when detect is none, ambiguous, or mismatch ask

A standalone turn still asks when a manager is only recorded and nothing is on disk yet (env_manager is "none"). After the questions this row allows: env.managed false stops at step 5; true runs step 6 (env init, env sync, env add-skore with no --mode, env verify).

Not this skill

A request to add a package outside ruff, ipython, ipykernel, and plain skore is not bootstrap. Do not env init and do not pixi add. Hand that package to the package-install step and stop. The close names the package and that step in plain language. Do not write the catalog id.

Sequence

  1. python -m skore_skills env detect and status.

  2. When setup-ml-project dispatched this turn, skip each question on its own. policy.env_manager set → do not ask which manager. policy.env.managed true or false → do not ask whether we manage the env. A recorded manager with env.managed still null still asks that one question. A recorded env.managed with no policy.env_manager does not reopen the managed question. A standalone request still asks, including when a manager is only recorded and nothing is on disk yet (env_manager is "none").

  3. G-ENV-MGR. Skip when step 2 skipped it. Otherwise read the JSON fields, not sentinel strings: ask when env_manager is "none", ambiguous is true, or mismatch is true. Use recommended as the ask order. PATH is not permission. Do not curl | sh.

  4. Skip when step 2 skipped it. Otherwise ask whether we manage the env (default yes). Persist python -m skore_skills policy set env.managed true or false.

  5. Unmanaged: stop. Name ruff / ipython / ipykernel / skore; do not init. Do not mention skore-skills to the user.

  6. Managed: policy set env_manager <manager> when it is not already recorded, then

    python -m skore_skills env init --manager <manager>
    python -m skore_skills env sync --execute
    python -m skore_skills env add-skore --execute
    python -m skore_skills env verify --execute
    

    Do not pass --mode. Omitting it installs for a recorded hub or mlflow destination, and plain Skore otherwise.

    If the selected manager is pixi and pixi.toml already exists, skip env init; preserve that manifest and continue with env sync --execute. Never replace it or try to add [tool.pixi] to pyproject.toml.

    Do not hand-edit TOML. Do not run pixi init. Do not create src/. Do not ask where reports go. Plain Skore is the early install when no destination is recorded; add-python-package upgrades it for Hub or MLflow after that choice is recorded. Do not pass --mode local. If verify reports missing skore or skore_skills, rerun env add-skore --execute the same way; never add skore-skills directly. If verify reports missing agent tools, load add-python-package for ruff / ipython / ipykernel (agent feature) when that skill is installed, not a second env init. If add-python-package is not installed, name ruff / ipython / ipykernel and stop.

Return and close

When dispatched by setup-ml-project, return to that caller after verification. Standalone, run python -m skore_skills git end-turn --stage setup. 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.

Three environments

Agent context only; do not narrate skore-skills to the user.

  • default — project runtime; bootstrap installs plain skore, which supplies skore-skills, when the report destination is unset or local. A recorded hub or mlflow destination uses that install instead.
  • agent — ruff, ipython, ipykernel.
  • dev — default + agent. Every later python -m skore_skills command uses this composed environment; env verify --execute must pass before other skills run.