name: uv-lockfile-hygiene description: Triage unexpected uv.lock changes and generated src/*.egg-info diffs in uv-driven Python repos. license: MIT compatibility: opencode,claude metadata: created_at: "2026-01-30T04:44:58.018Z" updated_at: "2026-01-30T04:44:58.018Z" version: "1"
Purpose
Keep dependency diffs clean and intentional in uv-driven repos.
When To Use
git diffshowsuv.lockchanges you did not expect.git diffalso showssrc/*.egg-info/**changes afteruv pip install -e ./uv run ....
Procedure
- Identify why
uv.lockchanged:- Check whether
pyproject.tomldependency constraints changed. - Re-run the intended install step (usually
uv sync --dev) and confirm the lock diff is stable.
- Check whether
- Decide what to commit:
- Commit
uv.lockonly when the dependency change is intentional (new/updated dependency, resolver behavior change, platform marker update). - Treat
src/*.egg-info/as generated metadata; do not commit by default.
- Commit
- If
src/*.egg-info/is untracked noise:- Prefer ignoring it via
.gitignore(src/*.egg-info/) rather than committing.
- Prefer ignoring it via
- If
src/*.egg-info/is already tracked:- Only commit it when doing explicit packaging/version metadata work; otherwise keep it out of feature commits.
Notes
uv.lockis the dependency source of truth;src/*.egg-info/is typically a local artifact of editable installs.
Manual notes
This section is preserved when the skill is updated. Put human notes, caveats, and exceptions here.