---
source: crates/skif-cli/tests/cli.rs
expression: human.stdout
---
RULE CATEGORY DEFAULT FIXABLE SUMMARY
empty-dependencies manifest error safe A dependency section (`dependencies`, `devDependencies`, `peerDependencies`, `optionalDependencies`) is an empty object.
root-package-private-field manifest error safe The root `package.json` must set `"private": true` so it cannot be published by accident.
root-package-manager-field manifest error none The root `package.json` must declare the package manager in `packageManager` or `devEngines.packageManager`.
root-package-dependencies manifest warning unsafe The root package should only have `devDependencies`; runtime dependencies belong to the packages that use them.
types-in-dependencies manifest error unsafe A private package lists `@types/*` packages in `dependencies`; type packages belong in `devDependencies`.
member-toolchain-fields manifest warning unsafe Private member packages should not declare `packageManager` or `engines`; the root package owns the toolchain.
incompatible-peer-dependencies manifest warning none The version a package installs in `devDependencies` does not satisfy the range it declares in `peerDependencies`.
unsorted-dependencies manifest error safe The entries of a dependency section are not in alphabetical (byte) order.
unmatched-workspace-patterns workspace warning unsafe A workspace pattern does not match any directory.
missing-package-manifest workspace warning unsafe A directory matched by the workspace patterns has no `package.json`, or in a Bun workspace one without a `name`, which Bun does not install.
stray-lockfile workspace warning unsafe A lockfile other than the root lockfile of the package manager: one in a workspace member, another manager's at the root, or one its manager ignores next to the one it reads (Bun's `bun.lockb` beside `bun.lock`, npm's `package-lock.json` beside `npm-shrinkwrap.json`).
nested-workspace-root workspace warning none A workspace member holds a `pnpm-workspace.yaml` of its own, so installs in that directory leave the workspace, or in a Bun workspace a `package.json` that declares `workspaces`, which Bun never installs; or a member is a Bazel convenience link (`bazel-<name>`) a workspace pattern follows.
local-path-dependency manifest error sometimes A dependency points at a path on disk (`link:`, `file:`, `portal:` or a relative path) instead of a registry or workspace version.
package-json-format manifest off sometimes A `package.json` is not formatted as `[format]` describes: key order, sorted fields, `exports` conditions, shorthand `bugs` and `repository`, and the indent. The fix is unsafe when `sort-exports` reorders conditions other than `types` and `default`.
stale-patched-dependencies workspace warning none A `patchedDependencies` entry no longer applies, names a missing file or lies outside the allowed paths, or a patch file is left over.
invalid-workspace-file workspace error none A member `package.json`, a workspace pattern or `.yarnrc.yml` cannot be read, so part of the workspace is not linted.
stale-lerna-config workspace warning none `lerna.json` sets `useWorkspaces` or lacks `version`, which Lerna 7 and later reject, or a script runs `lerna bootstrap`, `lerna add` or `lerna link`, which Lerna 9 removed.
lerna-packages-mismatch workspace warning none The `packages` of `lerna.json`, which Lerna reads before the package manager's workspaces, select other packages than the workspace declaration.
version-mismatch policy error sometimes A dependency instance differs from the version its version group requires (highest, lowest, pinned, local or snapped).
banned-dependency policy error unsafe A dependency is declared, or resolved by the lockfile, although a banned version group forbids it.
semver-range-mismatch policy error unsafe A dependency uses a semver range other than the one its semver group requires.
policy-conflict policy warning sometimes Two policies require incompatible outcomes for one dependency, or a group cannot be applied as configured.
invalid-local-version policy error none A workspace package has a `version` that is not an exact semver version, so dependents cannot align with it.
catalog-not-used catalog warning sometimes A dependency that has a catalog entry is declared with a version instead of `catalog:`.
catalog-mismatch catalog warning sometimes A dependency is declared with a version while other packages take it from a catalog.
catalog-missing-entry catalog warning sometimes A dependency that should come from a catalog has no catalog entry.
catalog-version-divergence catalog warning none Packages take one dependency from catalogs that resolve to different versions.
unresolved-catalog-references catalog error none A `catalog:` specifier names a catalog or an entry that does not exist.
unused-catalog-entries catalog warning unsafe A catalog entry that no manifest references; reported only when `[catalog] report-unused-entries` is `true`.
workspace-protocol policy error none A dependency on a workspace package does not use the `workspace:` protocol.
unsynced-dependency-family policy error none Members of a dependency family are on different versions in one package, or as resolved by the lockfile.
toolchain-pin-drift workspace warning none Node and package-manager versions pinned in version files, Dockerfiles, CI workflows and Bazel module files must match the root's.
foreign-package-manager-command workspace warning none Dockerfiles, CI workflows and shell scripts must not run a package manager other than the workspace's.
unused-dependencies js error unsafe A package in `dependencies` is never imported, required or run by a script; `optionalDependencies` are not checked.
unused-dev-dependencies js warning unsafe A package in `devDependencies` is never imported, required or run by a script.
unlisted-dependencies js error none A file imports a package that neither its `package.json` nor any `package.json` above it lists. An import that only the tsconfig `paths` of another package map has the detail `ForeignTsconfigPaths`: it needs a mapping, not a dependency. A package a tool config names (a tsconfig `extends`, an ESLint or Oxlint plugin, a Prisma generator) is reported at the config with the detail `ConfigReference`.
unresolved-imports js error none An import specifier does not resolve to a file or a package.
stale-mocks js error none A test-runner mock names a relative or aliased module that does not exist.
unlisted-binaries js warning none A script, or a command in a workflow, tool config or source file, runs a binary that no listed dependency provides.
unused-optional-peer-dependencies js warning none An optional peer dependency is imported but not installed as a dependency or dev dependency.
unused-files js warning sometimes A project file is not reachable from any entry file.
unused-subpath-imports js warning unsafe A `package.json` `imports` entry is not imported by any file of its package.
unused-subpath-exports js off none A `package.json` `exports` subpath is not imported by any workspace package.
unused-exports js warning unsafe An exported value is not imported by any other module.
unused-types js warning unsafe An exported type or interface is not imported by any other module.
unused-namespace-exports js warning unsafe An exported value of a module that is only read through a namespace import is never accessed.
unused-namespace-types js warning unsafe An exported type of a module that is only read through a namespace import is never accessed.
unused-enum-members js warning unsafe A member of an exported enum is never read.
unused-namespace-members js warning unsafe An exported member of a TypeScript namespace is never read.
duplicate-exports js warning none One binding is exported under several names.
circular-imports js off none Modules import each other in a cycle.
unparseable-files js warning none A file reachable from an entry file has a syntax error the parser could not recover from.
stale-js-config js warning none A `[js]` setting matched nothing or is redundant, a published entry file is missing, or many files are unused.