monorepo-deps

Orchestrates syncpack and manypkg to check, fix, and update dependencies in npm monorepos.

14|1|Updated Jun 14, 2026
One-click install
npx skills add https://github.com/allemaar/open-skills --skill monorepo-deps-allemaar
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: monorepo-deps
Source: https://github.com/allemaar/open-skills/tree/main/skills/monorepo-deps
Command: npx skills add https://github.com/allemaar/open-skills --skill monorepo-deps-allemaar

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires syncpack, @manypkg/cli.

What problem does it solve? Dependency versions drift across workspaces in an npm monorepo, causing mismatched ranges, broken lock files, and surprise major-version bumps that are hard to detect until a build fails. ## Core Features & Use Cases - Check and fix mismatches: Runs syncpack lint/fix and manypkg check/fix to align dependency ranges across all workspaces, then resyncs the lock file with npm install. - Controlled updates: Performs a full npm update --workspaces sweep with major-version caps enforced through root overrides, including handling of EOVERRIDE and peer-dependency conflicts. - Config management: Creates a starter .syncpackrc.json from a template and maintains version groups, semver groups, and banned-dependency rules over time. - Use Case: Before a release, run the update operation to sweep patch and minor bumps across every workspace, cap unwanted majors like TypeScript or ESLint in root overrides, and verify the lock file stays consistent. ## Quick Start Ask the agent to run /monorepo-deps update to check, fix, and bump all dependencies across the npm workspaces in this repository.

Frequently Asked Questions about monorepo-deps

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I fix dependency version mismatches in an npm monorepo?

Run syncpack fix to rewrite consumer package.json ranges according to the version and semver groups in .syncpackrc.json, then run manypkg fix and npm install to resync the lock file. Finish by re-running syncpack lint and manypkg check to confirm everything is clean.

How do I update all dependencies in npm workspaces without breaking major versions?

Cap unwanted majors in the root package.json overrides block (for example "typescript": "^5") before running npm update --workspaces --include-workspace-root. The override caps block silent major bumps while consumer ranges that already opt into a new major still flow through.

What is the difference between syncpack and manypkg?

syncpack finds and fixes version mismatches across workspaces and enforces semver range policies via .syncpackrc.json. manypkg validates internal consistency of workspace package.jsons with rules like EXTERNAL_MISMATCH, catching a different class of bugs with a smaller surface.

Does this workflow support pnpm or yarn monorepos?

No, this workflow is npm-only and explicitly avoids touching pnpm-lock.yaml or yarn.lock files. The syncpack concepts carry over to pnpm or yarn, but the lock-file commands differ and must be adapted manually.

Why does npm throw an EOVERRIDE error when I add an override?

EOVERRIDE fires when a package is both a direct root dependency and has an override whose range does not match. Resolve it by matching the ranges, removing the unneeded root direct dependency, or scoping the override to transitive dependencies only.

How do I pin an exact version for a peer dependency with syncpack?

Declare the exact version in the root devDependencies and add a semver group with an empty range for that package in .syncpackrc.json. Place it before the generic caret-range group because semver groups are first-match-wins.