Dependency Conflict Resolver Skill
Untangle "could not resolve dependency" hell into a clear, ranked plan.
Working from a brief
Infer the package manager and ecosystem from the error or files mentioned; label assumptions (assumed — confirm). Always deliver a concrete resolution path even from just the error text.
Input
Ask for these if not provided:
- The install error — the conflict output exactly as the tool printed it
- The manifest — package.json, requirements.txt, go.mod, pom.xml, whichever applies
- The lockfile — if one exists, since it is usually where the conflict is pinned
- The package manager — npm, pnpm, yarn, pip, Maven, Go modules; infer what's missing
Output Structure
The conflict
Plain-English: package A needs X of C, package B needs Y of C, and they can't both be satisfied (name the actual packages/versions from the input).
Options (ranked by safety)
- Safest — e.g. align versions, upgrade the constrained package, or find a compatible range. Exact command.
- Pragmatic — e.g. an override/resolution (
overrides, resolutions, constraints file) with the exact snippet — and the risk it carries.
- Last resort — e.g.
--legacy-peer-deps / --force — clearly flagged as masking the problem, not fixing it.
Give the exact commands/edits for each, and a recommendation of which to pick and why.
Verify & prevent
How to confirm the fix (npm ls <pkg>, a clean reinstall, the build), and one habit to avoid recurrence (lockfile committed, renovate/dependabot, version pinning policy).
Quality Checks
Anti-Patterns
1---2name: dependency-conflict-resolver-23description: Resolve a dependency or version conflict (npm, pip, yarn, pnpm, Maven, Go modules) step by step. Use when an install fails with peer-dependency or version-conflict errors, packages won't co-exist, or a lockfile is fighting you. Produces the conflict explained, the resolution options ranked by safety, exact commands, and how to keep it from recurring.4---56# Dependency Conflict Resolver Skill78Untangle "could not resolve dependency" hell into a clear, ranked plan.910## Working from a brief1112Infer the package manager and ecosystem from the error or files mentioned; label assumptions *(assumed — confirm)*. Always deliver a concrete resolution path even from just the error text.1314## Input1516Ask for these if not provided:17- **The install error** — the conflict output exactly as the tool printed it18- **The manifest** — package.json, requirements.txt, go.mod, pom.xml, whichever applies19- **The lockfile** — if one exists, since it is usually where the conflict is pinned20- **The package manager** — npm, pnpm, yarn, pip, Maven, Go modules; infer what's missing2122## Output Structure2324### The conflict25Plain-English: package **A** needs X of **C**, package **B** needs Y of **C**, and they can't both be satisfied (name the actual packages/versions from the input).2627### Options (ranked by safety)281. **Safest** — e.g. align versions, upgrade the constrained package, or find a compatible range. Exact command.292. **Pragmatic** — e.g. an override/resolution (`overrides`, `resolutions`, constraints file) with the exact snippet — and the risk it carries.303. **Last resort** — e.g. `--legacy-peer-deps` / `--force` — clearly flagged as masking the problem, not fixing it.3132Give the exact commands/edits for each, and a recommendation of which to pick and why.3334### Verify & prevent35How to confirm the fix (`npm ls <pkg>`, a clean reinstall, the build), and one habit to avoid recurrence (lockfile committed, renovate/dependabot, version pinning policy).3637## Quality Checks3839- [ ] Names the actual conflicting packages and versions from the input40- [ ] Options are ranked by safety with the trade-off of each stated41- [ ] `--force`/`--legacy-peer-deps`-style escapes are flagged as masking, not fixing42- [ ] Includes a verification step4344## Anti-Patterns4546- [ ] Do not lead with `--force` / `--legacy-peer-deps` — it hides the conflict and breaks later47- [ ] Do not delete the lockfile as the first move — explain what that actually does48- [ ] Do not give a single fix when several are viable — rank them with trade-offs49- [ ] Do not skip verifying the resolution actually installs/builds