用途:作为“本项目用哪个 Python 环境管理器、如何安装包”的唯一权威,供数据科学 Python 栈与相关工作流技能在需要新增依赖时调用。
主要能力:
- 检测环境管理器。按项目根目录信号判定:pixi.toml/pixi.lock→pixi;uv.lock 或 pyproject.toml [tool.uv]→uv;poetry.lock 或 [tool.poetry]→poetry;hatch.toml 或 [tool.hatch]→hatch;environment.yml 且 PATH 有 conda/mamba→conda;requirements.txt 加 .venv/ 或 venv/→pip+venv;无信号则询问用户,默认建议 pixi。多个信号并存时先暴露歧义,由用户决定。
- 依赖路由。固定三分:default(运行时,如 scikit-learn、skrub、skore、pandas+pyarrow 或 polars、可编辑工作区包)、dev(ruff、pytest、jupyterlab、ipykernel)、agent(ipython、pyright)。歧义包(如 optuna、xgboost、mlflow)触发 G-ENV-SCOPE 二选一询问。
- 安装命令。pixi:pixi add <pkg>、pixi add --feature <feature> <pkg>、pixi install;uv:uv add <pkg>、uv add --dev <pkg>、uv add --optional <group> <pkg>、uv sync;poetry:poetry add <pkg>、poetry add --group dev <pkg>、poetry install;hatch 为声明式,需编辑 pyproject.toml 后由 hatch run 重建;conda 用 conda install -n <env> -c conda-forge <pkg>;pip+venv 无清单跟踪,建议迁移。
- 门控与持久化。G-ENV-MGR 决定管理器,G-ENV-SCOPE 处理歧义包,G-AGENT-FEATURE 决定是否安装 ipython+pyright;结果记录在 journal/JOURNAL.md 的 Workspace decisions。
使用方式:先读 JOURNAL.md 的 Workspace decisions,再检测管理器,按对应命令安装,最后重新输出带证据的 Pre-flight 清单。
限制:禁止用错管理器安装(如 pixi 项目不用 pip install);无管理器时不得静默初始化;默认不锁版本;不代跑 bootstrap 安装脚本;agent 特性安装不注册 Jupyter kernel;安装后需运行验证脚本确认布局一致。