/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):
JavaScript/TypeScript (bun):
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 init or migrate from existing manager
- Create/update
pyproject.toml with 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 install to generate bun.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.txt or 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 install with astral-sh/setup-uv@v8 + uv sync
- JavaScript: Replace
actions/setup-node with oven-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
/configure:package-management
/configure:package-management --check-only
/configure:package-management --fix --manager uv
/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