Install any skill in seconds. Free to start, no credit card required.
Get Started Free →ledgerhq/knip-migration
Dead-code / unused-dependency detection is migrating from the legacy `unimported` tool to `knip`, which requires each package to expose an explicit, minimal `package.json#exports` (no `./*` wildcard). Read this when adding a new package or migrating an existing one.
Passed 23 of 23 test cases with the skill, and 6 of 23 without it.
and 25 more in the full report
17 fixed6 passed either way0 still failing0 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 17 test cases the skill fixed. Same model, same prompt, with and without the skill.
I am configuring dead-code analysis for `libs/coin-modules/coin-algorand`. Should I set the directory hop flag in the script to `--directory ../..` like standard `libs/<pkg>` packages use?
| Checked | Without skill | With skill |
|---|---|---|
| Requires `--directory ../../..` to reflect the three-level directory depth | Passed | Passed |
| Includes workspace flag `-W libs/coin-modules/coin-algorand` in the script | Missed | Passed |
The instructions your model reads when the skill loads.
The repo is migrating dead-code / unused-dependency detection from the legacy unimported
tool to knip, one package at a time. The root knip.json holds only
the shared rules — a package needs no workspaces entry there, since knip derives its entry files
from package.json (main, bin, exports) and its own defaults
(entry files).
knip treats everything listed in a package's package.json#exports as an entry point.
Today every package exports a ./* wildcard mapped to ./src/*.ts (via the @ledgerhq/source
custom condition declared in tsconfig.base.json):
"./*": {
"@ledgerhq/source": "./src/*.ts",
"import": "./lib-es/*.js",
"require": "./lib/*.js",
"default": "./lib/*.js"
}
Because of this wildcard, knip considers every top-level src/*.ts file "used" and cannot
detect unused ("zombie") top-level source files — the exact thing unimported caught (it
ignored exports and diffed against a curated entry list). So real knip parity for a package
requires replacing the ./* wildcard with explicit, minimal subpath exports that enumerate
the package's true public API.
The few libs already pointed at knip (e.g.
libs/env,libs/promise) still keep the./*wildcard, so they are only partially migrated — do not copy them as the template.
A new package has no consumers, so it should start in the target state — no .unimportedrc.json:
exports only. Enumerate the real public API; do not add a ./* wildcard.
Mirror the . root entry per subpath, keeping the conditions:
"exports": {
test cases passed, vs 6 / 23 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.