--- name: uv description: 在 Windows/macOS/Linux 上使用 `uv` 执行 Python 运行、依赖同步、锁文件管理、Python 版本管理与工具命令(`uv run`、`uv sync`、`uv lock`、`uv python`、`uv tool`)。当任务涉及“用 uv 运行脚本/命令”“临时依赖(`--with`)”“锁文件一致性(`--locked`/`--frozen`)”“跨平台 shell(bash/zsh/PowerShell)下排查 uv 执行问题”时使用此 skill。 --- # Uv ## Overview 以可复现、可审计的方式使用 `uv`。优先给出最小可执行命令,先读状态后做写入,明确是否会修改 `uv.lock`、`.venv`、`.python-version`。 ## Workflow 1. 确认上下文:当前目录是否为 `pyproject.toml` 项目、是否允许改动锁文件和环境。 2. 先选操作面:运行命令(`run`)、同步环境(`sync`)、更新锁(`lock`)、Python 版本(`python`)、工具(`tool`)。 3. 先执行只读探测:版本、help、检查状态(如 `uv --version`、`uv lock --check`、`uv sync --check`)。 4. 再执行变更命令:明确写入范围(`uv.lock`、`.venv`、`.python-version`、工具目录)。 5. 输出关键结果与下一步。 ## Operation Decision 1. 只执行一次命令且不想持久安装工具:用 `uv tool run`(或 `uvx`)。 2. 在项目环境中执行代码/命令:用 `uv run`。 3. 需要补齐或重建项目环境:用 `uv sync`。 4. 需要检查或更新锁文件:用 `uv lock`(只检查用 `uv lock --check`)。 5. 需要固定解释器版本:用 `uv python install` + `uv python pin`。 ## Command Rules - `uv` 选项必须放在被执行命令之前;必要时用 `--` 分隔(例如 `uv run --python 3.12 -- python`)。 - 需要临时依赖时用 `uv run --with ` 或 `uv tool run --with `。 - 不希望自动发现项目时用 `--no-project`。 - `uv run`/`uv sync` 默认会处理 lock/sync;需要禁止写锁文件时优先 `--locked`,需要跳过锁文件更新检查时用 `--frozen`。 - 执行 Python 脚本工具(如校验脚本)缺依赖时,优先 `uv run --with pyyaml