Depends on
ARCHITECTURE.md issue (feature-sliced architecture).
Problem
The new architecture relies on conventions; without lint enforcement they will erode.
Rules to add
- Files under
src/features/ may not import from src/v1/di/ or call useResolve.
- Files under
src/features/<a>/ may not import from src/features/<b>/ (no cross-feature imports). Allowed: imports from src/shared/.
- Files under
src/features/ may not import class entities from src/v1/domain/entities/.
- (Optional) Files under
src/features/ must not have a sibling useXxxViewModel.ts — keep view-model logic in the component or a feature composable.
Use eslint-plugin-boundaries or eslint-plugin-import no-restricted-paths.
Acceptance criteria
- Adding a forbidden import in a sample PR fails CI.
- Existing
/v1 and /store code is unaffected (rules scoped to src/features/).
Depends on
ARCHITECTURE.md issue (feature-sliced architecture).
Problem
The new architecture relies on conventions; without lint enforcement they will erode.
Rules to add
src/features/may not import fromsrc/v1/di/or calluseResolve.src/features/<a>/may not import fromsrc/features/<b>/(no cross-feature imports). Allowed: imports fromsrc/shared/.src/features/may not import class entities fromsrc/v1/domain/entities/.src/features/must not have a siblinguseXxxViewModel.ts— keep view-model logic in the component or a feature composable.Use
eslint-plugin-boundariesoreslint-plugin-importno-restricted-paths.Acceptance criteria
/v1and/storecode is unaffected (rules scoped tosrc/features/).