dependency-archaeologylisted
Install: claude install-skill PRO-2684/skills
# Dependency Archaeology
## Policies
- Black magic = error-prone monkey patches, e.g. `numpy.float = float` for old packages
on new NumPy. Use only when pins, downgrades, patches, or replacements cannot work.
- If black magic is unavoidable, make it reproducible and git-tracked via Dockerfile,
script, patch file, or documentation as last resort. Never leave it as manual local
state or untracked virtualenv mutation.
## Workflow
1. Inventory the repository before changing anything.
- Search for environment files with `rg --files`, including:
`Dockerfile`, `docker-compose*.yml`, `compose*.yaml`, `.devcontainer/*`,
`environment.yml`, `environment.yaml`, `conda-lock.yml`, `requirements*.txt`,
`constraints*.txt`, `pyproject.toml`, `uv.lock`, `poetry.lock`, `pdm.lock`,
`Pipfile`, `Pipfile.lock`, `setup.py`, `setup.cfg`, `package.json`,
`package-lock.json`, `npm-shrinkwrap.json`, `yarn.lock`, `pnpm-lock.yaml`,
`Gemfile`, `Gemfile.lock`, `go.mod`, `go.sum`, `Cargo.toml`, `Cargo.lock`,
`renv.lock`, `DESCRIPTION`, `Makefile`, CI config, and README setup sections.
- Identify the canonical environment source. Prefer the lockfile plus its manifest
when both exist; otherwise prefer the file documented by README/CI/devcontainer.
- Note tool versions when encoded in files, such as Python, Node, CUDA, Conda,
base Docker image tags, package manager versions, or `.tool-versions`.
- Check `git status --short` and whether candidate