uv-ruff-only-tooling-migration
Migrate a Python repo from Poetry/Black to UV + Ruff-only (CI, pre-commit, pyproject, docs).
SKILL.md.opencode/skills/uv-ruff-only-tooling-migration/SKILL.md
GitHub<!-- BEGIN:compound:skill-managed -->
When To Use
- Repo has
uv.lock(or wants UV). - User wants no Poetry and/or no Black.
Steps
- Remove Poetry artifacts
- Delete
poetry.lock. - Remove Poetry commands/docs references.
- Delete
- Make
pyproject.tomlUV-native- Ensure PEP 621
[project]is source of truth. - Prefer
[dependency-groups]fordev/docstool deps. - Add missing runtime deps surfaced by imports/tests.
- Run
uv lockto regenerateuv.lock.
- Ensure PEP 621
- Pre-commit
- Remove Black hook.
- Add
ruff-formatandruffhooks. - Ensure hooks run via the repo’s standard workflow.
- CI
- Replace Black check with
uv run ruff format --check. - Lint with
uv run ruff check. - Use
uv sync --devanduv pip install -e .. - If needed, temporarily run a stable smoke suite while fixing failing tests.
- Replace Black check with
- Docs/agent guidance
- Update
AGENTS.md,README.md, and contrib/dev docs to reference UV + Ruff only.
- Update
Verify
uv sync --devuv pip install -e .uv run ruff format --check src testsuv run ruff check src testsuv run pytest(or smoke suite if full is broken)<!-- END:compound:skill-managed -->
Manual notes
This section is preserved when the skill is updated. Put human notes, caveats, and exceptions here.