Optional ReadonlyextensionsFile extensions to scan; default
.ts/.tsx/.js/.jsx/.mjs/.cjs. .mjs and .cjs are
included by default because the rule catalogue's predicate
contract is language-level, not module-format-level
(docs/migration/RULE_CATALOGUE.md): a Jotai atom(0) is
drift regardless of which extension wraps it. Pass an explicit
extensions: ['.ts'] to narrow the walk.
Optional ReadonlyskipPath segments to exclude from the walk. Each entry is matched
exactly against an individual directory or file name — not as a
substring and not as a glob. This is deliberate: a substring match
on dist would also exclude legitimate subtrees such as
distribution/, distance.ts, or redistribute.ts, letting
unmigrated code hide behind the findings.length === 0 axis of the
validation procedure (docs/migration-validation.md). Only a name
that equals a skip entry verbatim (e.g. dist, node_modules) is
pruned.
Caller options for scanDirectory.
Remarks
The directory walker has only two adopter-visible knobs: which file extensions to consume, and which path fragments to skip. Both have deliberate defaults that reflect "what an adopter actually wants" — see scanDirectory for the defaults and the rule-catalogue rationale for including
.mjs/.cjsout of the box.