diff --git a/development/tooling.md b/development/tooling.md index 91bb8b7..ffc2ab8 100644 --- a/development/tooling.md +++ b/development/tooling.md @@ -196,6 +196,28 @@ joining the oxfmt-superseded rules already off. are part of the public API. - The narrower scope keeps the signal high without config-file boilerplate. +### `knip` lists `src/index.ts` as an entry + +#### Decision (2026-09) + +`knip.json` declares `"entry": ["src/index.ts", "scripts/*.ts"]`. + +#### Why + +- Supplying `entry` **replaces** knip's default entry detection, which otherwise + derives the public entry from `package.json` `exports`. Adding `scripts/*.ts` + there therefore dropped the library entry, so knip resolved the package through + its `dist/index.js` output and reported the unreferenced source entry file + `src/index.ts` as an unused file. +- Naming the source entry restores the link between the public API and the + source graph without pointing knip at build output. + +#### Rejected + +- `paths` mapping `dist/index.*` back to `src/index.ts`: more config to model a + relation the explicit entry states directly, and it would break whenever the + build layout changes. + ### `maintain:outdated` ignores `@types/node` #### Decision (2026-09) diff --git a/knip.json b/knip.json index 19b899b..2b1590a 100644 --- a/knip.json +++ b/knip.json @@ -1,5 +1,5 @@ { "$schema": "./node_modules/knip/schema.json", - "entry": ["scripts/*.ts"], + "entry": ["src/index.ts", "scripts/*.ts"], "ignoreDependencies": ["@runwisp/pubv"] }