Package and dependency management patterns across ecosystems (npm, pip, cargo, maven)...
Use this skill for package-manager choice, lockfile policy, update strategy, supply-chain controls, and dependency hygiene across common ecosystems. It owns reproducibility and security defaults, not framework-specific app architecture.
| Task | Use |
|---|---|
| Ecosystem defaults and package-manager choice | references/ecosystem-guides.md |
| Lockfiles and CI install policy | references/lockfile-management.md |
| Security scanning, SBOMs, and provenance | references/security-scanning.md, assets/automation/template-supply-chain-security.md, assets/automation/template-sbom-vuln-triage-checklist.md |
| Monorepos and workspace policy | references/monorepo-patterns.md, assets/nodejs/pnpm-workspace-template.yaml |
| Update strategy and rollback | references/update-strategies.md, assets/automation/template-dependency-upgrade-playbook.md |
| Add-or-avoid dependency decision | references/dependency-selection-guide.md, references/transitive-dependencies.md |
| Audit script | python3 scripts/dep_auditor.py --help |
dependency management request
-> identify ecosystem, package manager, lockfile, wrapper, and workspace shape
-> classify change: add, remove, pin, update, audit, migrate, or policy
-> choose smallest safe dependency move
-> check security, provenance, license, transitive risk, and AI package risk
-> update lockfile or policy according to repo conventions
-> run reproducibility, test, audit, and SBOM checks where available
-> document rollback, owner, expiry, and follow-up
| Ecosystem | Default for new repos | Current stable | Key constraint |
|---|---|---|---|
| Node | pnpm unless compat pressure favors npm | pnpm 12 (Rust-native, requires Node 22) | pnpm 11+ is pure ESM, SQLite store; pnpm 12 is a native Rust port via pnpm self-update; verify CI Node version |
| Python | uv | uv 0.11.x (0.x but production-stable) | Still on 0.x versioning; core APIs stable |
| Rust | Cargo | stable toolchain | commit Cargo.lock for apps |
| Go | go modules | current go toolchain | go.mod + go.sum canonical |
| Java | Maven wrapper or Gradle wrapper | see upstream | wrappers plus BOMs or version catalogs |
| .NET | PackageReference | current .NET SDK | PackageReference over packages.config |
| PHP | Composer | current stable | commit composer.lock for apps |
Keep repo-local consistency more important than theoretical ecosystem purity.
Minimum rules:
Default cadence:
Use:
minimumReleaseAge or Renovate minimumReleaseAge to avoid consuming just-published packages (Shai-Hulud, Axios, and Miasma npm compromises 2025-2026 repeatedly show a fast-publish-to-attack window under three hours)Before accepting an AI-suggested package:
Default to one of these:
| File | What it covers |
|---|---|
| references/ecosystem-guides.md | Per-ecosystem package-manager defaults, CI install commands, and watchouts for Node, Python, Rust, Go, Java, .NET, PHP |
| references/lockfile-management.md | Lockfile matrix, golden rules, per-ecosystem exact-install commands, CI rules, and drift recovery |
| references/security-scanning.md | Native audit commands, SBOM generation, provenance controls, Dependabot/Renovate usage, and triage workflow |
| references/monorepo-patterns.md | JS/TS workspace defaults, pnpm supply-chain settings, polyglot structure, and version governance |
| references/dependency-selection-guide.md | Add-or-avoid decision criteria, graph inspection commands, AI-suggested package checklist |
| references/update-strategies.md | Update cadence table, batch-by-risk workflow, bot policy, and rollback rule |
| references/transitive-dependencies.md | Tree inspection, override patterns, deduplication, and resolution decision tree |
| references/license-compliance.md | License risk table, GPL decision tree, automated tooling, CI integration, and SBOM generation commands |
| references/version-conflict-resolution.md | Conflict types, per-manager diagnostic commands, forced resolution syntax, and pnpm catalogs |
| references/container-dependency-patterns.md | Multi-stage build patterns, layer caching, vulnerability scanning (Trivy/Grype), and reproducible base image pinning |
| references/semver-guide.md | SemVer constraint syntax for npm, Python, and Cargo with common pitfalls |
| references/anti-patterns.md | Critical and moderate anti-patterns with corrective examples |
scripts/dep_auditor.py, scripts/README.md, data/sample-dependency-manifest.example.jsonBefore applying this skill on a non-trivial task, read learnings.consolidated.md in this directory (and learnings.md if present).
After applying it, if you encountered a pattern worth remembering, a mistake worth preventing, or a domain fact that surprised you, append one dated bullet to learnings.md via agents-skills-feedback-loop/scripts/append_learning.py. Do not modify SKILL.md itself.