Background
PR #3 introduced scripts/lint-import-boundaries.ts as the CLI wrapper for import-boundary enforcement. The checker currently produces output only when violations are found and provides no operation-context logging, scan statistics, or visibility into unresolved imports.
Requested work
Extend the CLI to support maintainer observability:
- Scan start/end logging — emit a structured message when scanning begins and completes (file count, duration).
- Summary statistics — report total files scanned, violations found, and unresolved imports encountered.
--verbose flag — when passed, emit per-file resolution detail and unresolved-import diagnostics to stderr.
- Unresolved-import diagnostics — when an import specifier cannot be resolved to a known source file, emit a diagnostic (currently silent).
All new output must be written to stderr only and must not affect the exit-code contract (0 = clean, 1 = violations).
Acceptance criteria
bun run lint:imports --verbose emits scan context and per-file details.
- Unresolved imports are surfaced as warnings, not errors.
- Existing
main() dependency-injection interface (LintImportBoundaryDependencies) is preserved and extended where necessary.
- Tests cover the new output paths.
References
Background
PR #3 introduced
scripts/lint-import-boundaries.tsas the CLI wrapper for import-boundary enforcement. The checker currently produces output only when violations are found and provides no operation-context logging, scan statistics, or visibility into unresolved imports.Requested work
Extend the CLI to support maintainer observability:
--verboseflag — when passed, emit per-file resolution detail and unresolved-import diagnostics to stderr.All new output must be written to stderr only and must not affect the exit-code contract (0 = clean, 1 = violations).
Acceptance criteria
bun run lint:imports --verboseemits scan context and per-file details.main()dependency-injection interface (LintImportBoundaryDependencies) is preserved and extended where necessary.References