configure-package-management
/configure:package-management
Check and configure modern package managers for optimal development experience.
When to Use This Skill
| Use this skill when... | Use another approach when... |
|---|---|
| Setting up a new project with modern package managers (uv, bun) | Installing a single dependency — run uv add or bun add directly |
| Migrating from legacy package managers (pip, npm, yarn, poetry) to modern ones | Project uses cargo or go mod (already optimal, no migration needed) |
| Auditing package manager configuration for best practices | Configuring linting or formatting tools — use /configure:linting |
| Ensuring lock files, dependency groups, and CI/CD integration are properly configured | Resolving a specific dependency conflict — debug with uv pip compile or bun install --verbose |
| Detecting and cleaning up conflicting lock files from multiple managers | Only need to install dependencies — run uv sync or bun install directly |
Context
- Project root: !
pwd - Package files: !
find . -maxdepth 1 \( -name 'package.json' -o -name 'pyproject.toml' -o -name 'Cargo.toml' -o -name 'go.mod' \) - Lock files: !
find . -maxdepth 1 \( -name 'uv.lock' -o -name 'bun.lockb' -o -name 'package-lock.json' -o -name 'yarn.lock' -o -name 'pnpm-lock.yaml' -o -name 'poetry.lock' -o -name 'Pipfile.lock' \) - Python venv: !
find . -maxdepth 1 -type d -name '.venv' - Legacy files: !
find . -maxdepth 1 \( -name 'requirements.txt' -o -name 'Pipfile' \) - Project standards: !
find . -maxdepth 1 -name '.project-standards.yaml'
Parameters
Parse from command arguments:
--check-only: Report compliance status without modifications (CI/CD mode)--fix: Apply fixes automatically without prompting--manager <uv|bun|npm|cargo>: Override detection (focus on specific manager)
Modern package manager preferences:
- Python: uv (replaces pip, poetry, pipenv, pyenv) - 10-100x faster
- JavaScript/TypeScript: bun (alternative to npm/yarn/pnpm) - significantly faster
- Rust: cargo (standard, no alternatives needed)
- Go: go mod (standard, no alternatives needed)
Execution
Execute this package management compliance check:
Step 1: Detect project languages and current package managers
Check for language and manager indicators:
| Indicator | Language | Current Manager | Recommended |
|---|---|---|---|
pyproject.toml |
Python | uv / poetry / pip | uv |
requirements.txt |
Python | pip | uv |
Pipfile |
Python | pipenv | uv |
poetry.lock |
Python | poetry | uv |
uv.lock |
Python | uv | uv |
package.json + bun.lockb |
JavaScript/TypeScript | bun | bun |
package.json + package-lock.json |
JavaScript/TypeScript | npm | bun |
package.json + yarn.lock |
JavaScript/TypeScript | yarn | bun |
package.json + pnpm-lock.yaml |
JavaScript/TypeScript | pnpm | bun |
Cargo.toml |
Rust | cargo | cargo |
go.mod |
Go | go mod | go mod |
Use WebSearch or WebFetch to verify latest versions before configuring.
Step 2: Analyze current configuration state
For each detected language, check configuration:
Python (uv):
-
uvinstalled and on PATH -
pyproject.tomlexists with[project]section -
uv.lockexists (lock file) - Virtual environment in
.venv/ - Python version pinned in
pyproject.toml - Dependency groups configured (dev, test, docs)
- Build system specified (
hatchling,setuptools, etc.)
JavaScript/TypeScript (bun):
-
buninstalled and on PATH -
package.jsonexists -
bun.lockbexists (lock file) -
node_modules/exists - Scripts defined (
dev,build,test,lint) - Type definitions configured (TypeScript)
- Workspaces configured (if monorepo)
Step 3: Generate compliance report
Print a formatted compliance report:
Package Management Configuration Report
=======================================
Project: [name]
Languages: Python, TypeScript
Python:
Package manager uv 0.5.x [MODERN | LEGACY pip]
pyproject.toml exists [EXISTS | MISSING]
Lock file uv.lock [EXISTS | OUTDATED | MISSING]
Virtual environment .venv/ [EXISTS | MISSING]
Python version 3.12 [PINNED | NOT PINNED]
Dependency groups dev, test, docs [CONFIGURED | MINIMAL]
Build backend hatchling [CONFIGURED | MISSING]
JavaScript/TypeScript:
Package manager bun 1.1.x [MODERN | npm | yarn]
package.json exists [EXISTS | MISSING]
Lock file bun.lockb [EXISTS | MISSING]
Scripts dev, build, test, lint [COMPLETE | INCOMPLETE]
Type definitions tsconfig.json [CONFIGURED | MISSING]
Engine constraints package.json engines [PINNED | NOT PINNED]
Overall: [X issues found]
Recommendations:
- Migrate from pip to uv for faster installs
- Add uv.lock to version control
- Configure dependency groups in pyproject.toml
- Migrate from npm to bun for better performance
If --check-only, stop here.
Step 4: Configure package managers (if --fix or user confirms)
Apply configuration based on detected languages. Use templates from REFERENCE.md:
Python with uv
- Install uv (via mise, curl, or homebrew)
- Initialize project with
uv initor migrate from existing manager - Create/update
pyproject.tomlwith project metadata and dependency groups - Generate
uv.lock - Update
.gitignore
JavaScript/TypeScript with bun
- Install bun (via mise, curl, or homebrew)
- Remove old lock files (
package-lock.json,yarn.lock,pnpm-lock.yaml) - Run
bun installto generatebun.lockb - Update scripts in
package.json - Update
.gitignore
Step 5: Handle migrations
If migrating from a legacy manager:
pip/poetry to uv:
- Install uv
- Run
uv init - Migrate dependencies:
uv add -r requirements.txtor copy from poetry - Remove old files (
requirements.txt,Pipfile,poetry.lock) - Update CI/CD workflows
npm/yarn/pnpm to bun:
- Install bun
- Remove old lock files and
node_modules - Run
bun install - Update scripts to use bun equivalents
- Update CI/CD workflows
Use migration templates from REFERENCE.md.
Step 6: Configure CI/CD integration
Update GitHub Actions workflows to use modern package managers:
- Python: Replace
pip installwithastral-sh/setup-uv@v4+uv sync - JavaScript: Replace
actions/setup-nodewithoven-sh/setup-bun@v2
Use CI workflow templates from REFERENCE.md.
Step 7: Update standards tracking
Update .project-standards.yaml:
standards_version: "2025.1"
last_configured: "[timestamp]"
components:
package_management: "2025.1"
python_package_manager: "uv"
javascript_package_manager: "bun"
lock_files_committed: true
Step 8: Print final report
Print a summary of changes applied, migrations performed, and next steps for verifying the configuration.
For detailed configuration templates and migration guides, see REFERENCE.md.
Agentic Optimizations
| Context | Command |
|---|---|
| Quick compliance check | /configure:package-management --check-only |
| Auto-fix all issues | /configure:package-management --fix |
| Check uv version | uv --version |
| Check bun version | bun --version |
| List Python deps | uv pip list --format json |
| List JS deps | bun pm ls --json |
Flags
| Flag | Description |
|---|---|
--check-only |
Report status without offering migrations |
--fix |
Apply all migrations automatically without prompting |
--manager <manager> |
Override detection (uv, bun, npm, cargo) |
Examples
# Check compliance and offer migrations
/configure:package-management
# Check only, no modifications
/configure:package-management --check-only
# Auto-migrate Python to uv
/configure:package-management --fix --manager uv
# Auto-migrate JavaScript to bun
/configure:package-management --fix --manager bun
Error Handling
- Multiple Python managers detected: Warn about conflict, suggest single source of truth
- Missing package manager: Offer to install via mise
- Invalid pyproject.toml: Report parse error, offer template
- Lock file conflicts: Warn about multiple lock files, suggest cleanup
- Workspace/monorepo: Detect and configure workspace settings
See Also
/configure:linting- Configure linting tools (ruff, biome)/configure:formatting- Configure formatters/deps:install- Universal dependency installer/configure:all- Run all compliance checks- uv documentation: https://docs.astral.sh/uv
- bun documentation: https://bun.sh/docs