Use when defining version policies, banning dependencies, pinning versions, or creating partitioned version groups in syncpack. Covers advanced version management patterns.
View on GitHubJanuary 24, 2026
Select agents to install to:
npx add-skill https://github.com/TheBushidoCollective/han/blob/main/jutsu/jutsu-syncpack/skills/syncpack-version-groups/SKILL.md -a claude-code --skill syncpack-version-groupsInstallation paths:
.claude/skills/syncpack-version-groups/# Syncpack Version Groups
Version groups allow you to define sophisticated dependency version policies in your monorepo. This skill covers advanced patterns for version management.
## Version Group Structure
```js
export default {
versionGroups: [
{
label: 'Description of this group',
dependencies: ['package-name', '@scope/**'],
dependencyTypes: ['prod', 'dev'],
packages: ['apps/**'],
specifierTypes: ['exact', 'range'],
// Policy options (choose one)
preferVersion: 'highestSemver',
// pinVersion: '1.0.0',
// isBanned: true,
// isIgnored: true,
},
],
};
```
## Filter Options
### dependencies
Match specific packages by name or glob:
```js
dependencies: [
'react', // exact match
'react-*', // wildcard
'@types/**', // scoped packages
'{react,vue}', // either/or
]
```
### dependencyTypes
Filter by where dependencies appear:
```js
dependencyTypes: [
'dev', // devDependencies
'local', // workspace: protocol
'overrides', // npm overrides
'peer', // peerDependencies
'pnpmOverrides', // pnpm.overrides
'prod', // dependencies
'resolutions', // yarn resolutions
]
```
### packages
Filter by which package.json files:
```js
packages: [
'apps/**', // all apps
'packages/core', // specific package
'!packages/legacy', // exclude pattern
]
```
### specifierTypes
Filter by version specifier format:
```js
specifierTypes: [
'exact', // 1.2.3
'range', // ^1.2.3, ~1.0.0, >=2.0.0
'tag', // latest, next, canary
'url', // https://, git://
'file', // file:../path
'workspace', // workspace:*
]
```
## Version Policies
### preferVersion
Choose which version wins when mismatches exist:
```js
// Use the highest semver version found
preferVersion: 'highestSemver'
// Use the lowest semver version found
preferVersion: 'lowestSemver'
// Use whatever a spec