# Dependency Conflict Resolver

> 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.

- Skill: `mohitagw15856/dependency-conflict-resolver` (Agent Skill)
- Install (CLI): `npx skillmds add mohitagw15856/dependency-conflict-resolver`
- Raw SKILL.md: https://api.skillmd.com/api/skills/mohitagw15856/dependency-conflict-resolver/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: Mohit Aggarwal (https://skillmd.com/u/mohitagw15856)
- Updated: 2026-09-07
- Page: https://skillmd.com/skills/mohitagw15856/dependency-conflict-resolver

---


# 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)
1. **Safest** — e.g. align versions, upgrade the constrained package, or find a compatible range. Exact command.
2. **Pragmatic** — e.g. an override/resolution (`overrides`, `resolutions`, constraints file) with the exact snippet — and the risk it carries.
3. **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

- [ ] Names the actual conflicting packages and versions from the input
- [ ] Options are ranked by safety with the trade-off of each stated
- [ ] `--force`/`--legacy-peer-deps`-style escapes are flagged as masking, not fixing
- [ ] Includes a verification step

## Anti-Patterns

- [ ] Do not lead with `--force` / `--legacy-peer-deps` — it hides the conflict and breaks later
- [ ] Do not delete the lockfile as the first move — explain what that actually does
- [ ] Do not give a single fix when several are viable — rank them with trade-offs
- [ ] Do not skip verifying the resolution actually installs/builds

